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

Иллюстрации

Показать все

Изобретения относятся к процессорам, предназначенным для выполнения операций скалярного произведения. Техническим результатом является повышение производительности процессора. Система для выполнения операции скалярного произведения содержит: первое запоминающее устройство, предназначенное для сохранения инструкции скалярного произведения типа "один поток команд - много потоков данных" (ОКМД); процессор, соединенный с первым запоминающим устройством для выполнения инструкции скалярного произведения ОКМД, в которой инструкции скалярного произведения типа ОКМД содержат индикатор операнда источника, индикатор операнда назначения, по меньшей мере, один индикатор непосредственного значения, при этом индикатор непосредственного значения включает множество битов управления. 4 н. и 24 з.п. ф-лы, 18 ил.

Реферат

Область техники, к которой относится изобретение

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

Уровень техники

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

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

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

В соответствии с этим отображение изображений, а также воспроизведение аудио- и видеоданных, которое совместно относятся к содержанию, становятся все более и более популярными приложениями в современных вычислительных устройствах. Операции фильтрации и свертки представляют собой некоторые из наиболее часто выполняемых операций в отношении данных содержания, таких как данные изображения аудио- и видеоданные. Такие операции требуют интенсивных вычислений, но предоставляют высокий уровень параллелизма данных, который можно эксплуатировать, используя эффективное воплощение с применением различных устройств хранения данных, таких как, например, регистры с одним потоком команд и множеством потоков данных (SIMD, ОКМД). В ряде существующих архитектур также требуется, чтобы множество операций, инструкций или подынструкций (часто называются "микрооперациями" или "uops") выполняли различные математические операции по множеству операндов, снижая, таким образом, пропускную способность и увеличивая количество циклов тактовой частоты, требуемых для выполнения математических операций.

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

Краткое описание чертежей

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

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

на фиг.1В показана блок-схема другой примерной компьютерной системы в соответствии с альтернативным вариантом воплощения настоящего изобретения;

на фиг.1C показана блок-схема еще одной примерной компьютерной системы в соответствии с другим альтернативным вариантом воплощения настоящего изобретения;

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

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

на фиг.3В иллюстрируются типы пакетных данных в соответствии с альтернативным вариантом воплощения;

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

на фиг.3D иллюстрируется один вариант воплощения формата кодирования операции (opcode);

на фиг.3Е иллюстрируется альтернативный формат кодирования операции (opcode);

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

на фиг.4 показана блок-схема одного варианта воплощения логической схемы для выполнения операции скалярного произведения по операндам пакетных данных в соответствии с настоящим изобретением;

на фиг.5а показана блок-схема логической схемы для выполнения операции скалярного произведения по операндам пакетных данных с одинарной точностью в соответствии с одним вариантом воплощения настоящего изобретения;

на фиг.5b показана блок-схема логической схемы для выполнения операции скалярного произведения по операндам пакетных данных с двойной точностью в соответствии с одним вариантом воплощения настоящего изобретения;

на фиг.6А показана блок-схема цепи для выполнения операции скалярного произведения в соответствии с одним вариантом воплощения настоящего изобретения;

на фиг.6В показана блок-схема цепи для выполнения операции скалярного произведения в соответствии с другим вариантом воплощения настоящего изобретения;

на фиг.7А показано представление в виде псевдокода операций, которые могут быть выполнены при выполнении инструкции СППО, в соответствии с одним вариантом воплощения;

на фиг.7В показано представление в виде псевдокода операций, которые могут быть выполнены, используя существующую инструкцию СППД, в соответствии с одним вариантом воплощения.

Подробное описание изобретения

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

Хотя следующие варианты воплощения описаны со ссылкой на процессор, другие варианты воплощения применимы к другим типам интегральных микросхем и логических устройств. Те же самые методики и описания настоящего изобретения можно легко применять к другим типам схем или полупроводниковых устройств, которые могут использовать преимущество более высокой пропускной способности конвейерной обработки и улучшенных рабочих характеристик. Описания настоящего изобретения применимы к любому процессору или устройству, которое выполняет операции с данными. Однако настоящее изобретение не ограничивается процессорами или устройствами, которые выполняют 256-битные, 128-битные, 64-битные, 32-битные или 16-битные операции с данными, и его можно применять к любому процессору и устройству, в котором требуется производить обработку пакетных данных.

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

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

Таким образом, считываемый компьютером носитель информации может включать в себя любой механизм, предназначенный для сохранения или передачи информации в форме, считываемой устройством (например, компьютером), но не ограничивается гибкими дисками, оптическими дисками, компакт-диском, постоянным запоминающим устройством (CD-ROM, КД-ПЗУ) и магнитооптическими дисками, постоянным запоминающим устройством (ROM, ПЗУ), оперативным запоминающим устройством (RAM, ОЗУ), стираемым программируемым постоянным запоминающим устройством (EPROM, СППЗУ), электрически стираемым программируемым постоянным запоминающим устройством (EEPROM, ЭСППЗУ), магнитными или оптическими картами, запоминающим устройством типа флэш, передачей через сеть Интернет, электрической, оптической, акустической или другими формами распространения сигналов (например, волнами несущих, инфракрасными сигналами, цифровыми сигналами и т.д.) или тому подобное. В соответствии с этим считываемый компьютером носитель включает в себя любой тип среды/считаемого устройством носителя, пригодного для сохранения или передачи электронных инструкций или информации в форме, считываемой устройством (например, компьютером). Кроме того, настоящее изобретение также может быть загружено как компьютерный программный продукт. При этом программа может быть передана из удаленного компьютера (например, сервера) в запрашивающий компьютер (например, в устройство-клиент). Передача программы может осуществляться в электрической, оптической, акустической или других формах сигналов данных, воплощенных в виде несущей волны, или в другой среде распространения через канал передачи данных (например, модем, сетевое соединение или тому подобное).

Конструкция может использоваться в выполнении различных этапов от конструирования до моделирования и до изготовления. Данные, представляющие конструкцию, могут представлять конструкцию множеством способов. Прежде всего, что полезно при моделировании, аппаратные средства могут быть представлены с использованием языка описания аппаратных средств или другого функционального языка описания. Кроме того, в ходе некоторых этапов процесса конструирования может быть изготовлена модель на уровне схем с логическими и/или транзисторными вентильными схемами. Кроме того, в большинстве конструкций на определенном этапе достигается определенный уровень данных, представляющих физическое размещение различных устройств в аппаратной модели. В случае когда используют обычные технологии изготовления полупроводников, данные, представляющие аппаратную модель, могут представлять собой данные, описывающие наличие или отсутствие различных элементов в различных слоях маски для масок, используемых для изготовления интегральных схем. В любом представлении конструкции данные могут быть сохранены на представленном в любой форме считываемом устройством носителе информации. Оптические или электрические волны, модулированные или генерируемые другим способом для передачи такой информации, запоминающее устройство или магнитный или оптический накопитель информации, такой как диск, могут представлять собой считываемый устройством носитель информации. Любой из этих носителей может "переносить" или "обозначать" конструктивную или программную информацию. Когда передают электрическую волну несущей, обозначающую или переносящую код или конструкцию, в той степени, что выполняют копирование, размещение в буфере или повторную передачу электрического сигнала, получают новую копию. Таким образом, провайдер передачи данных или провайдер сети могут делать копии изделия (волны несущей), которые воплощают технологию настоящего изобретения.

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

По мере того как все больше компьютерных систем используют в Интернет и мультимедийных приложениях, с течением времени была введена дополнительная поддержка процессора. Например, инструкции с целым числом/плавающей запятой типа один поток команд и множество потоков данных (ОКМД) и расширения потокового ОКМД (SSE, РПО) представляют собой инструкции, которые уменьшают общее количество инструкций, требуемых для выполнения конкретной программной задачи, что, в свою очередь, может уменьшить потребление энергии. Эти инструкции могут ускорять работу программных средств путем параллельного выполнения операций с множеством элементов данных. В результате может обеспечиваться улучшение рабочих характеристик в широком диапазоне приложений, включающих в себя обработку видеоданных, речевых данных и изображений/фотографий. Воплощение инструкций ОКМД в микропроцессорах и аналогичных типах логических цепей обычно подразумевает целый ряд вопросов. Кроме того, сложность операций ОКМД часто приводит к необходимости использования дополнительной схемы для правильной обработки данных и манипуляции с данными.

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

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

DEST1←SRC1*SRC2;

DEST2←SRC3*SRC4;

DEST3←DEST1+DEST2.

Для операнда пакетных данных ОКМД такой поток может применяться к каждому элементу данных каждого операнда.

В представленном выше потоке "DEST" и "SRC" представляют собой общие члены, представляющие источник и назначение соответствующих данных или операций. В некоторых вариантах воплощения они могут быть воплощены с помощью регистров, запоминающего устройства или других накопителей данных, имеющих другие названия или функции, чем те, которые были представлены. Например, в одном варианте воплощения DEST1 и DEST2 могут представлять собой первую и вторую области временного сохранения (например, регистр "TEMP1" и "ТЕМР2"), SRC1 и SRC3 могут представлять собой первую и вторую области сохранения места назначения (например, регистр "DEST1" и "DEST2") и т.д. В других вариантах воплощения две или больше области сохранения SRC и DEST могут соответствовать разным элементам сохранения данных в пределах одной и той же области сохранения (например, регистр ОКМД). Кроме того, в одном варианте воплощения операция скалярного произведения может генерировать сумму скалярных произведений, сгенерированных описанным выше общим потоком.

На фиг.1А показана блок-схема примерной компьютерной системы, сформированной с процессором, который включает в себя исполнительные модули для выполнения инструкции операции скалярного произведения в соответствии с одним вариантом воплощения настоящего изобретения. Система 100 включает в себя компонент, такой как процессор 102, для воплощения исполнительных модулей, включающий в себя логическую схему для выполнения алгоритмов обработки данных, в соответствии с настоящим изобретением, таких как вариант воплощения, описанный здесь. Система 100 представляет собой систему обработки на основе микропроцессоров типа PENTIUM® III, PENTIUM® 4, Xeon™, Itanium®, XScale™ и/или StrongARM™, поставляемых корпорацией Intel Corporation, г. Санта Клара, Калифорния, хотя также можно использовать другие системы (включающие в себя ПК, имеющие другие микропроцессоры, инженерные рабочие станции, телевизионные приставки и т.п.). В одном варианте воплощения образец системы 100 может выполнить версию операционной системы WINDOWS™, поставляемой компанией Microsoft Corporation, г. Редмонд, штат Вашингтон, хотя также можно использовать другие операционные системы (например, UNIX и Linux), встроенное программное обеспечение и/или графические интерфейсы пользователя. Таким образом, варианты воплощения настоящего изобретения не ограничиваются какой-либо специфичной комбинацией аппаратных схем и программного обеспечения.

Варианты воплощения не ограничиваются компьютерными системами. Альтернативные варианты воплощения настоящего изобретения можно использовать в других устройствах, таких как карманные устройства и встраиваемые приложения. Некоторые примеры карманных устройств включают в себя сотовые телефоны, устройства протокола Интернет, цифровые камеры, карманные персональные компьютеры (КПК) и портативные ПК. Встраиваемые программные приложения могут включать в себя микроконтроллер, цифровой процессор сигналов (DSP, ЦПС), систему на микросхеме, сетевые компьютеры (NetPC), телевизионные приставки, концентраторы сети, коммутаторы глобальной вычислительной сети (WAN, ГВС) или любую другую систему, которая выполняет операции скалярного произведения по операндам. Кроме того, некоторые архитектуры были воплощены для обеспечения возможности выполнения инструкций, обрабатывающих несколько данных одновременно, для улучшения эффективности мультимедийных приложений. По мере того как количество типов и объем данных увеличиваются, компьютеры и их процессоры требуется совершенствовать для обработки этих данных с использованием более эффективных способов.

На фиг.1А показана блок-схема компьютерной системы 100, сформированной с процессором 102, который включает в себя один или больше исполнительных модулей 108, предназначенных для выполнения алгоритма для расчета скалярного произведения элементов данных по одному или больше операндам в соответствии с одним вариантом воплощения настоящего изобретения. Один вариант воплощения может быть описан в контексте настольной или серверной системы с одиночным процессором, но альтернативные варианты воплощения могут быть включены в мультипроцессорную систему. Система 100 представляет собой пример архитектуры концентратора. Компьютерная система 100 включает в себя процессор 102 для обработки сигналов данных. Процессор 102 может представлять собой микропроцессор типа процессора со сложным набором команд (CISC, ПСНК), микропроцессор с архитектурой вычислений с сокращенным набором команд (RISC, BCHK), микропроцессор с командными словами очень большой длины (VLIW, КОБД), процессор, воплощающий комбинацию наборов инструкций или любое другое устройство обработки, такое как, например, цифровой процессор сигналов. Процессор 102 соединен с шиной 110 процессора, по которой можно передавать сигналы данных между процессором 102 и другими компонентами в системе 100. Элементы 100 системы выполняют свои обычные функции, которые хорошо известны специалистам в данной области техники.

В одном варианте воплощения процессор 102 включает в себя запоминающее устройство 104 внутренней кэш Level 1 (L1 (уровень 1)). В зависимости от архитектуры процессор 102 может иметь одиночный внутренний кэш или множество уровней внутренней кэш. В качестве альтернативы, в другом варианте воплощения запоминающее устройство - кэш может быть внешним относительно процессора 102. Другие варианты воплощения могут также включать комбинацию как внутренней, так и внешней кэш, в зависимости от конкретного воплощения и потребностей. Файл 106 регистра может сохранять различные типы данных в различных регистрах, включающих в себя регистры целых чисел, регистры с плавающей запятой, регистры статуса и регистр указателя команд.

Исполнительный модуль 108, включающий в себя логическую схему для выполнения операций с целыми числами и с числами с плавающей запятой, также находится в процессоре 102. Процессор 102 также включает в себя ПЗУ микрокода (ucode), в котором сохранен микрокод для определенных макроинструкций. Для данного варианта воплощения исполнительный модуль 108 включает в себя логические схемы, предназначенные для обработки пакетного набора 109 инструкций. В одном варианте воплощения набор 109 пакетных инструкций включает в себя пакетную инструкцию - скалярное произведение для расчета скалярного произведения по множеству операндов. В результате включения пакетного набора 109 инструкций в набор инструкций процессора 102 общего назначения вместе с соответствующими схемами для выполнения этих инструкций операции, используемые множеством мультимедийных приложений, могут быть выполнены с использованием пакетных данных в процессоре 102 общего назначения. Таким образом, множество мультимедийных приложений могут быть ускорены и могут быть выполнены более эффективно при использовании полной ширины шины данных процессора для выполнения операций с пакетными данными. Это может устранить необходимость передачи малых модулей данных через шину данных процессора для выполнения одной или больше операций с одним элементом данных за один раз.

Альтернативные варианты воплощения исполнительного модуля 108 также можно использовать в микроконтроллерах, встроенных процессорах, графических устройствах, ЦПС и в других типах логических схем. Система 100 включает в себя запоминающее устройство 120. Запоминающее устройство 120 может представлять собой устройство динамического оперативного запоминающего устройства (DRAM, ДОЗУ) устройство статического оперативного запоминающего устройства со случайным доступом (SRAM, СОЗУ), запоминающее устройство типа флэш или другое запоминающее устройство. В запоминающем устройстве 120 могут содержаться инструкции и/или данные, представленные сигналами данных, которые могут быть выполнены процессором 102.

Логическая микросхема 116 системы соединена с шиной 110 процессора и с запоминающим устройством 120. Системная логическая микросхема 116 в представленном варианте выполнения представляет собой концентратор контроллера памяти (МСН, ККП). Процессор 102 может связываться с ККП 116 через шину 110 процессора. ККП 116 обеспечивает тракт 118 запоминающего устройства с большой полосой пропускания в запоминающее устройство 120 для сохранения инструкций и данных и для сохранения графических команд, данных и текстур. ККП 116 предназначен для того, чтобы направлять сигналы данных между процессором 102, запоминающим устройством 120 и другими компонентами в системе 100 и для того, чтобы соединять сигналы данных между шиной 110 процессора, запоминающим устройством 120 и системой 122 ввода/вывода. В некоторых вариантах воплощения логические микросхемы 116 системы могут предоставлять графический порт для соединения с графическим контроллером 112. ККП 116 соединен с запоминающим устройством 120 через интерфейс 118 памяти. Видеокарту 112 соединяют с ККП 116 через взаимное соединение 114 ускоренного графического порта (AGP, УГП).

В системе 100 используется собственная шина 122 интерфейса для соединения ККП 116 с концентратором контроллера ввода/вывода (ICH, ККВ) 130. ККВ 130 предоставляет непосредственные соединения с некоторыми устройствами ввода/вывода через локальную шину ввода/вывода. Локальная шина ввода/вывода представляет собой высокоскоростную шину ввода/вывода, предназначенную для соединения периферийных устройств с запоминающим устройством 120, набором микросхем и процессором 102. Некоторые примеры также представляют собой контроллер звука, концентратор аппаратных средств (BIOS (Базовая система ввода-вывода, БСВВ) типа флэш) 128, беспроводный приемопередатчик 126, накопитель 124 данных, контроллер наследуемого ввода/вывода, содержащий интерфейсы ввода пользователя и клавиатуры, последовательный порт расширения, например универсальную последовательную шину (USB, УПШ), и сетевой контроллер 134. Устройство хранения данных 124 может содержать жесткий диск, накопитель на гибких магнитных дисках, устройство CD-ROM, перепрограммируемое запоминающее устройство или другое устройство - накопитель большого объема.

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

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

Компьютерная система 140 содержит ядро 159 обработки, выполненное с возможностью операций ОКМД, включающих в себя операцию скалярного произведения. Для одного варианта воплощения ядро 159 обработки представляет собой модуль обработки любого типа архитектуры, включающий в себя, но без ограничений ПСНК, архитектуру типа ВСНК или КОБД. Ядро 159 обработки также может быть выполнено с возможностью изготовления с использованием одной или больше технологий обработки и, поскольку оно достаточно подробно представлено на считываемых устройством носителях информации, может способствовать такому производству.

Ядро 159 обработки содержит исполнительный модуль 142, набор файла (файлов) 145 регистра и декодер 144. Ядро 159 обработки также включает в себя дополнительную схему (не показана), которая не является необходимой для понимания настоящего изобретения. Исполнительный модуль 142 используется для выполнения инструкций, получаемых ядром 159 обработки. В дополнение к распознаванию типичных инструкций процессора исполнительный модуль 142 может распознавать инструкции в наборе 143 пакетных инструкций для выполнения операций по форматам пакетных данных. Набор 143 пакетных инструкций включает в себя инструкции, предназначенные для поддержки операций скалярного произведения, и также может включать в себя другие пакетные инструкции. Исполнительный модуль 142, соединенный с файлом 145 регистра, может представлять собой внутреннюю шину. Файл 145 регистра представляет собой область сохранения для ядра 159 обработки, предназначенную для сохранения информации, включающей в себя данные. Как упомянуто выше, следует понимать, что область сохранения, используемая для сохранения пакетных данных, не является критичной. Исполнительный модуль 142 соединен с декодером 144. Декодер 144 используется для декодирования инструкций, принятых ядром 159 обработки, и точек входа в сигналы управления и/или микрокод. В ответ на эти сигналы управления и/или точки входа микрокода исполнительный модуль 142 выполняет соответствующие операции.

Ядро 159 обработки соединено с шиной 141 для связи с различными другими устройствами системы, которые могут включать в себя, но не ограничиваются этим, например, управление 146 синхронным динамическим оперативным запоминающим устройством (SDRAM, СДОЗУ), управление 147 статическим оперативным запоминающим устройством (СОЗУ), интерфейс 148 пакетной памяти типа флэш, управление 149 картой в соответствии со стандартом международной ассоциации производителей карт памяти для персональных компьютеров (PCMCIA, МАКППК)/карту compact flash (CF), управление 150 жидкокристаллическим дисплеем (LCD, ЖКД), контроллер 151 прямого доступа к памяти (DMA, ПДП) и альтернативный главный интерфейс 152 шины. В одном варианте воплощения система 140 обработки данных также может содержать мост 154 ввода/вывода, предназначенный для связи с различными устройствами ввода/вывода через шину 153 ввода/вывода. Такие устройства ввода/вывода могут включать в себя, но не ограничиваются этим, например, универсальный асинхронный приемопередатчик (UART, УАПП) 155, универсальную последовательную шину (УПШ) 156, беспроводный УАПП 157 типа Bluetooth и интерфейс 158 расширения ввода/вывода.

В одном варианте воплощения система 140 обработки данных обеспечивает мобильную, сетевую и/или беспроводную передачу данных, и в ней содержится ядро 159 обработки, позволяющее выполнять операции ОКМД, включающие в себя операцию скалярного произведения. Ядро 159 обработки может быть запрограммировано с использованием различных аудио-, видеоданных, алгоритмов формирования изображения и алгоритмов передачи данных, включающих в себя дискретные преобразования, такие как преобразование Уолша-Адамара, быстрое преобразование Фурье (FFT, БПФ), дискретное косинусное преобразование (DCT, ДКП), и их соответствующие обратные преобразования; технологии сжатия/расширения, такие как преобразование цветового пространства, оценка движения при кодировании видеоданных или компенсация движения при декодировании видеоданных; и функции модуляции/демодуляции (MODEM), такие как кодовая импульсная модуляция (РСМ, КИМ). Некоторые варианты воплощения изобретения также можно применять в графических приложениях, таких как трехмерное ("3D") моделирование, рендеринг, детектирование коллизии объектов, преобразование и освещение 3D объектов и т.д.

На фиг.1C иллюстрируется другие альтернативные варианты воплощения системы обработки данных, выполненной с возможностью выполнения операций скалярного произведения ОКМД. В соответствии с одним альтернативным вариантом воплощения система 160 обработки данных может включать в себя основной процессор 166, сопроцессор 161 ОКМД, память 167 кэш и систему 168 ввода/вывода. Система 168 ввода/вывода в случае необходимости может быть соединена с беспроводным интерфейсом 169. Сопроцессор 161 ОКМД выполнен с возможностью выполнения операций ОКМД, включающих в себя операции скалярного произведения. Ядро 170 обработки может быть пригодным для изготовления с использованием одной или больше технологий обработки и может быть достаточно подробно представлено на считываемом устройством носителе информации, что способствует производству всей или части системы 160 обработки данных, включающей в себя ядро 170 обработки.

В одном варианте воплощения сопроцессор 161 ОКМД содержит исполнительный модуль 162 и набор файла (файлов) 164 регистра. В одном варианте воплощения основной процессор 166 содержит декодер 165 для распознавания инструкций из набора 163 инструкций, включающего в себя инструкции расчета скалярного произведения ОКМД, для выполнения исполнительным модулем 162. В альтернативных вариантах воплощения сопроцессор 161 ОКМД также содержит, по меньшей мере, часть декодера 165В для декодирования инструкций, состоящую из набора 163 инструкций. Ядро 170 обработки также включает в себя дополнительную схему (не показана), кото