EA004071B1 - Управляющий программный продукт и система обработки данных - Google Patents

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

Info

Publication number
EA004071B1
EA004071B1 EA200200309A EA200200309A EA004071B1 EA 004071 B1 EA004071 B1 EA 004071B1 EA 200200309 A EA200200309 A EA 200200309A EA 200200309 A EA200200309 A EA 200200309A EA 004071 B1 EA004071 B1 EA 004071B1
Authority
EA
Eurasian Patent Office
Prior art keywords
data
processing
input
output interfaces
processing unit
Prior art date
Application number
EA200200309A
Other languages
English (en)
Other versions
EA200200309A1 (ru
Inventor
Томойоси Сато
Original Assignee
Ай Пи ФЛЕКС ИНК.
Томойоси Сато
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ай Пи ФЛЕКС ИНК., Томойоси Сато filed Critical Ай Пи ФЛЕКС ИНК.
Publication of EA200200309A1 publication Critical patent/EA200200309A1/ru
Publication of EA004071B1 publication Critical patent/EA004071B1/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Abstract

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

Description

Область техники
Настоящее изобретение относится к управляющему программному продукту, описываемому с помощью микрокоманд или т.п., и к системе обработки данных, выполненной с возможностью выполнения управляющей программы.
Уровень техники
Процессоры (системы обработки данных или БИС), выполняющие оперативные функции, такие как микропроцессор (МП) или процессор обработки цифровых сигналов, являются известными устройствами для выполнения универсальной обработки и специальной обработки цифровых данных. Архитектурные факторы, которые в значительной мере повысили производительность этих процессоров, включают в себя следующие факторы: конвейерная технология обработки, суперконвейеризация, суперскалярная технология, технология системы команд сверхбольшой длины и введение специализированных маршрутов данных (специализированные команды). Эти архитектурные элементы также включают в себя ветвление с прогнозированием, банк регистров, технологию кэширование и т.п.
Согласно технологии системы команд сверхбольшой длины (СКСД) маршруты данных конфигурируют заранее, чтобы обеспечить возможность параллельного выполнения; оптимизацию осуществляют таким образом, что компилятор улучшает параллельное выполнение и формирует соответствующий код команд СКСД. Эта технология применяет очень рациональную идею, согласно которой устраняется необходимость в схемах для проверки вероятности параллельного выполнения отдельных инструкций, как в суперскалярной технологии. Поэтому эта технология считается очень перспективной как средство реализации аппаратных средств для параллельного выполнения. В случае процессора для использования при обработке прикладной программы, для которой требуется обработка изображений или специальная обработка данных, СКСД также не является оптимальным решением. Причина этого заключается в том, что, в частности, в прикладных программах, для которых нужна непрерывная или последовательная обработка с использованием результатов операций, существует некоторый предел выполнения операций или обработки данных с одновременным хранением данных в таком универсальном регистре, как в СКСД. Это та же проблема, что и в обычной конвейерной технологии.
С другой стороны, из прошлого опыта хорошо известно, что различные матричные вычисления, векторные вычисления и т.п. более производительны, если их выполняют в специализированных схемах. Поэтому в наиболее передовой технологии для обеспечения наиболее высокой производительности основанная на СКСД концепция становится основной при применении различных специализированных арифметических схем, созданных сообразно цели прикладных программ.
Но СКСД является технологией повышения эффективности выполнения параллельной обработки с помощью счетчика команд. Поэтому СКСД не эффективна, например, в случае выполнения двух и более объектов одновременно или в случае выполнения двух или более функций. Помимо этого, создание различных специализированных арифметических схем увеличивает объем аппаратуры и также снижает гибкость программного обеспечения.
Согласно архитектуре на базовых матричных кристаллах (БМК) обеспечивают возможность изменения соединений между транзисторами и, в некоторой степени, динамического управления; поэтому имеется возможность реализации различных специализированных арифметических схем. Но в архитектуре на основе БМК требуется много времени для динамического изменения аппаратных средств и требуется некоторая дополнительная аппаратура, чтобы сократить это время. Поэтому затруднено динамическое управление аппаратных средств во время выполнения прикладной программы, и этот подход не стал экономичным решением. Также имеется возможность запоминать информацию о реконфигурации БМК в ЗУПВ, имеющем две стороны или более, для работы в фоновом режиме в целях динамического изменения архитектуры в течение явно короткого времени. Но для того чтобы эту реконфигурацию можно было провести в течение нескольких тактов, необходимо иметь ЗУПВ, которое запоминает все возможные комбинации информации реконфигурации БМК. Эта методика, по существу, не решает экономическую проблему длительного времени реконфигурации БМК. Помимо этого, первоначальная проблема БМК, т. е. низкие характеристики управления выборкой на практическом уровне, обусловленная предназначением БМК для эффективного размещения информации с точки зрения логических элементов аппаратных средств, пока вряд ли будет решена.
Поэтому задача данного изобретения заключается в создании системы, такой как управляющий программный продукт, системы обработки данных, выполненной с возможностью выполнения программ; и способа управления системой обработки; в данной системе сложные виды обработки данных выполняют гибко с высокой скоростью, без применения различных специализированных схем, предназначенных для разных видов обработки данных. Еще одна задача данного изобретения заключается в обеспечении более экономичной системы обработки данных, способа управления системой обработки и программного продукта, обеспечивающего динамическое управление аппаратурой во время выполнения прикладной программы и обеспечивающего гибкость уровня программного обеспечения на аппаратном уровне и выполнение различных видов обработки данных с высокой скоростью.
Сущность изобретения
Настоящее изобретение описывает программный продукт для управления системой обработки данных, содержащей множество блоков обработки. Программный продукт или программное устройство включает в себя команду назначения потока данных для обозначения интерфейсов ввода и/или вывода по меньшей мере одного из блоков обработки независимо от времени или тактирования выполнения, блока обработки, чтобы определить маршрут данных, конфигурируемый данным блоком обработки. Эту программу можно обеспечивать в записываемом или запоминаемом виде на соответствующем носителе записи, считываемом с помощью системы обработки данных, таком как ПЗУ - постоянное запоминающее устройство - или ЗУПВ запоминающее устройство с произвольной выборкой. Либо эту программу можно обеспечивать в виде, встроенном в передающую среду, передаваемую по компьютерной сети или по другому средству связи.
Данное изобретение также обеспечивает систему обработки данных, содержащую совокупность блоков обработки, содержащую изменяемые интерфейсы ввода и/или вывода, блок выборки команды назначения потока данных для обозначения интерфейсов ввода и/или вывода по меньшей мере одного блока обработки независимо от времени или тактирования выполнения блока обработки и блок назначения потока данных для декодирования команды назначения потока данных и для создания интерфейсов ввода и/или вывода блока обработки, чтобы конфигурировать маршрут данных из множества блоков обработки. Программный продукт в соответствии с настоящим изобретением управляет системой обработки. Соответственно путь данных, сформированный из комбинации множества блоков обработки, изменяют с помощью программы, в результате чего различные виды обработки данных выполняют с помощью аппаратных средств, т. е. с помощью маршрута данных или потока данных, которые соответствуют каждому виду из числа различных видов обработки данных.
Способ управления системой обработки данных согласно настоящему изобретению содержит операцию выборки команды назначения потока данных, которая обозначает интерфейсы ввода и/или вывода по меньшей мере одного блока обработки данных независимо от тактирования выполнения, осуществляемого блоком обработки; и операцию назначения потока данных, согласно которой декодируют команду назначения потока данных и создают интерфейсы ввода и/или вывода блока обработки, чтобы конфигурировать некоторый маршрут данных из множества блоков обработки.
Обычно единственный способ ведения усложненной обработки данных заключается в обеспечении специализированных схем и составлении специальной команды для использования этих схем, в результате чего повышаются затраты на аппаратуру. В противоположность этому, в системе согласно данному изобретению, в программном продукте, системе обработки данных и способе управления ею описывают интерфейсы блока обработки в качестве арифметико-логического устройства, чтобы можно было ввести структуру конвейерного управления и управления маршрутом данных в набор команд, т. е. в программный продукт. Это позволяет описывать различные виды обработки данных с помощью программы и выполнять их с помощью соответствующих аппаратных средств, обеспечивая таким образом систему обработки данных, обладающую и гибкостью программных средств, и высокой производительностью, с помощью специализированных схем согласно настоящему изобретению. При этом указанные маршруты данных можно выполнить без прерывания выполнения основной обработки или универсальной обработки, и поэтому обеспечивается возможность динамической реконфигурации аппаратных средств.
Помимо этого, данное изобретение представляет средство, которое эффективно не только для выполнения параллельной обработки с помощью счетчика команд, но также и для одновременного псевдовыполнения двух или более объектов и одновременного псевдовыполнения двух или более функций. Другими словами, в обычном наборе команд нельзя одновременно осуществить два или более видов обработки, соответственно основывающихся на удаленных счетчиках команд, например обработку данных и выполнение алгоритмов с разными контекстами. Но согласно данному изобретению потоки данных надлежащим образом назначают с помощью команд назначения потока данных, что позволят выполнять указанные виды обработки независимо от счетчиков команд.
Соответственно при использовании указанного набора команд маршрут данных, который кажется эффективным с точки зрения улучшения характеристик параллельной обработки со стороны прикладной программы, можно заранее включить в программные средства, в результате чего реализованный таким образом маршрут данных (поток данных) активизируют из программных средств на уровне команд и по необходимости. Поскольку эти маршруты данных используют не только для видов обработки данных, соответствующих конкретной цели, но также и для функционирования в качестве универсального конечного автомата, поэтому структура данного изобретения имеет очень гибкую степень свободы.
Данное изобретение обеспечивает возможность изменять маршруты данных, сформиро5 ванных из комбинации блоков обработки, с помощью интерфейса блоков обработки согласно команде назначения потока данных. Соответственно, в противоположность архитектуре, изменяющей соединения между транзисторами, подобно БМК, маршруты данных определяют простым переключением интерфейсов между блоками обработки, имеющими соответствующую и/или определенную функцию обработки данных. Поэтому аппаратные средства реконфигурируют в течение короткого времени. Система обработки данных согласно настоящему изобретению не имеет архитектуры, требующей общего использования на транзисторном уровне, подобно БМК; плотность монтажа или упаковки повышается, в результате чего можно обеспечить компактный экономичный процессор данных, такой как системную БИС. При этом за счет сокращения избыточной структуры возрастает скорость обработки и также повышаются характеристики управления выборкой.
В программе, системе обработки данных и способе управления ею согласно настоящему изобретению записывают или описывают команду, определяющую интерфейсы по меньшей мере одного блока обработки, содержащегося в системе обработки данных. Поэтому становится возможным описание потоков данных и повышение независимости маршрутов данных. В результате этого, легко обеспечивают такие структуры, которые реализуют назначение потока данных, при этом выполняя другую команду программы; и также имеется возможность предоставления внутреннего маршрута данных системы обработки данных в состоянии ожидания для более срочной обработки, выполняемой в другом внутреннем процессоре данных или в другой системе обработки данных в той же интегральной схеме.
Также желательно, чтобы содержание или функцию обработки в блоке обработки, выполненном с возможностью конфигурирования маршрута данных путем их комбинирования, можно было изменять согласно команде назначения потока данных. Другими словами, желательно, чтобы в блоке назначения потока данных и на этапе назначения потока данных содержание обработки в блоке обработки было изменяемым или переменным согласно команде назначения потока данных. Это обстоятельство обеспечивает возможность повышения гибкости маршрута данных, сформированного из комбинации блоков обработки, в результате чего большее число видов обработки данных можно будет осуществлять обработкой потока данных, обеспечивая возможность увеличения производительности.
Архитектуру БМК можно использовать в отдельных блоках обработки. Как упоминалось выше, для динамического изменения или реконфигурации аппаратных средств требуется значительное время, и также нужна дополнительная аппаратура для сокращения времени реконфигурации. Поэтому затруднено динамическое управление аппаратными средствами в блоке обработки при выполнении прикладной программы. Если множество ЗУПВ обеспечить банковой структурой для мгновенной коммутации, то для коммутации длительностью порядка от нескольких до нескольких десятков тактов потребуется значительное число банковых структур. Поэтому принципиально необходимо сделать каждый макроэлемент в БМК независимо программируемым и детектирующим время или тактирование при переключении для выполнения программируемого механизма управления. Но современная архитектура БМК недостаточна для применения этой структуры, и для назначения переключения в соответствующие тактовые моменты времени требуется новый механизм управления командой.
Соответственно в настоящем изобретении желательно применять в качестве блока обработки схемный блок, имеющий специфический(ие) (конкретный(ые)) внутренний(ие) маршрут(ы) данных. Блоки обработки с отчасти компактными маршрутами данных выполняют в виде шаблонов и комбинации маршрутов данных обозначают таким образом, чтобы выполнять поточную обработку данных. Помимо этого, часть внутреннего маршрута данных блока обработки выбирают в соответствии с командой назначения потока данных, чтобы изменять функцию или содержание обработки, выполняемой в блоке обработки. В результате этого, аппаратуру можно более гибким образом реконфигурировать за короткое время.
Например, блок обработки, имеющий по меньшей мере один логический вентиль и внутренний(ие) маршрут(ы) данных, соединяющий логический вентиль с интерфейсами ввода/вывода, обеспечивает возможность изменять содержание обработки блоки обработки за счет изменения порядка данных, вводимых/выводимых в/из логического вентиля, за счет изменения соединения между логическими вентилями или за счет выбора логического вентиля; и таковое изменение и/или выбор возможны только путем выбора части внутреннего маршрута данных, подготовленной заранее. Поэтому содержание обработки в блоке обработки изменяют в течение более короткого времени по сравнению с БМК, которая реконфигурирует схему, и это возможно на транзисторном уровне. При этом применение внутреннего маршрута данных, подготовленного для некоторой цели заранее, сокращает число избыточных элементов схемы и повышает эффективность использования площади транзисторов. Соответственно плотность монтажа или упаковки повышается и обеспечивается более экономичная система обработки. В системе обеспечивают маршруты данных, соответствующие высокоскоростной обработке, и также значительно улучшаются ее характеристики управления выборкой. Поэтому согласно данному изобретению в блоке и опеΊ рации назначения потока данных желательно выбирать часть внутреннего маршрута данных блока обработки в соответствии с командой назначения потока данных.
Также желательно, чтобы блок назначения потока данных осуществлял функцию планировщика для управления интерфейсом блока обработки, чтобы обеспечивать планирование управления интерфейсом каждого блока обработки на основе команды назначения потока данных. Например, в случае, когда матричное вычисление выполняют только в течение фиксированного времени, а фильтрацию осуществляют потом, соединение между блоками управления в системе обработки данных выполняют до выполнения каждого из видов обработки, и каждое соединение создают с помощью таймера. За счет замены таймера на другую схему сравнения или на детектор внешних событий возможно осуществить более сложное, гибкое планирование.
Также желательно, чтобы интерфейсы ввода и/или вывода в средстве обработки, сформированном из множества блоков обработки, были определены в соответствии с командой назначения потока данных. Поскольку интерфейсы множества блоков обработки изменяют или реконфигурируют одной командой, то маршруты данных, относящиеся к совокупности блоков обработки, можно изменять или реконфигурировать одной командой. Соответственно в блоке назначения потока данных желательно изменение или конфигурирование интерфейсов ввода и/или вывода в средстве обработки, сформированном из множества блоков обработки, согласно команде назначения потока данных.
Еще более желательно обеспечить запоминающее устройство, сохраняющее совокупность данных конфигурации, определяющих интерфейсы ввода и/или вывода в средстве обработки; и в блоке или операции потока данных обеспечить интерфейсам ввода и/или вывода в средстве обработки возможность изменяться путем выбора данных из множества данных конфигурации, сохраненных в запоминающем устройстве, согласно команде назначения потока данных. Если данные конфигурации обозначены командой назначения потока данных, то изменением интерфейса совокупности блоков обработки управляют из программы без того, что сама команда становится избыточной.
Перечень фигур чертежей
Фиг. 1 иллюстрирует набор команд согласно данному изобретению, содержащий команду назначения потока данных;
фиг. 2 более подробно иллюстрирует Уполе изображаемого на фиг. 1 набора команд;
фиг. 3 изображает пример применения изображаемого на фиг. 1 набора команд;
фиг. 4 иллюстрирует, как запоминают данные в регистре с помощью изображаемого на фиг. 3 набора команд;
фиг. 5 иллюстрирует систему обработки данных для выполнения набора команд согласно данному изобретению;
фиг. 6 поясняет программу, выполняемую обычным центральным процессором или процессором обработки цифрового сигнала;
фиг. 7 иллюстрирует программу системы обработки данных согласно данному изобретению;
фиг. 8 изображает компилированную программу изображенной в фиг. 7 программы с использованием наборов команд согласно данному изобретению;
фиг. 9 представляет еще одну программу системы обработки данных согласно данному изобретению;
фиг. 10 изображает потоки данных, конфигурированные с помощью изображаемой на фиг. 9 программы;
фиг. 11 представляет еще одну систему обработки данных, выполненную с возможностью назначения потока данных;
фиг. 12 иллюстрирует изменение маршрута данных;
фиг. 13 схематически иллюстрирует структуру еще одной системы обработки данных, выполненной с возможностью выполнения обработки данных согласно набору команд в соответствии с настоящим изобретением;
фиг. 14 иллюстрирует состояние, в котором разные специализированные схемы формируют разными комбинациями шаблонов;
фиг. 15 иллюстрирует один из шаблонов.
Предпочтительные варианты осуществления
Ниже настоящее изобретение излагается более подробно со ссылками на чертежи. Фиг. 1 изображает структуру или формат набора команд (формат команды) согласно настоящему изобретению. Набор команд (набор команд ΌΆΡ/ΌΝΆ) 10 в настоящем изобретении содержит два поля: первое поле, называемое «основным полем выполнения команды» (Х-поле) 11, и второе поле, называемое «полем цикла подготовки выполнения команды» (дополнительное поле, или У-поле) 12, которое в состоянии повысить эффективность выполнения последующей команды. Основное поле выполнения команды (Х-поле) 11 определяет такие операции с данными, как суммирование/вычитание, операции ИЛИ, И и сравнение, и также содержание различных других видов обработки данных, таких как ветвление, и обозначает местоположение (адрес назначения), где должен быть запомнен результат операции. Кроме того, для повышения эффективности использования длины команды Х-поле 11 содержит только информацию команд для выполнения. С другой стороны, дополнительное поле (У-поле) 12 способно описывать команду(ы) (информацию) независимо от команды выполнения в X-поле 11 того же набора команд, и например оно предназначено для информации для выполнения подготовительного цикла последующей команды.
Набор 10 команд далее описывается более подробно. Х-поле 11 имеет поле 15 команды выполнения, описывающее операцию команды или команду выполнения (идентификатор выполнения) для такого блока обработки, как арифметико-логическое устройство, поле (поле типа) 16, указывающее действительное/недействительное У-поле 12 и тип подготовительной команды (подготовительная информация), указываемый в У-поле 12; и поле 17, указывающее регистр назначения. Как описано выше, описание поля 16 типа относится к Уполю 12 и может быть определено независимо от описаний других полей в Х-поле 11.
В У-поле 12 описывают подготовительную информацию, определяемую полем 16 типа. Подготовительная информация, описываемая в У-поле 12, является информацией для выполнения операции или другой обработки данных, готовой для выполнения. Некоторые ее конкретные примеры представлены на фиг. 2. Первое, снова отмечается, что поле 16 типа в Хполе 11 предназначается для описания информации независимо от информации в поле 15 команды выполнения. В У-поле 12 можно описать поле 26 адресной информации, которое описывает идентификатор адреса (ΑΙΌ) 21 и адресную информацию 22, заданное применение которой определяют с помощью ΑΙΌ 21. Эту адресную информацию, описываемую в Уполе 12, используют для считывания и записи между регистрами или буферами и запоминающими устройствами (включая регистровые файлы); и поблочную передачу, например прямой доступ к памяти, обеспечивают с помощью информации в У-поле. Также возможно описание такой информации, как адрес, указывающий адрес назначения при ветвлении, при выполнении команды ветвления (адрес вызова), и начальный адрес, в качестве адресной информации, при параллельном выполнении в У-поле
12.
В У-поле также возможно описание информации 23, которая определяет команду регистрового типа, например определенные непосредственно получаемые данные (1шш) и/или информацию регистров, служащую в качестве исходных регистров для арифметической операции, или другую команду логической операции (включая МОУЕ, считывание/запись в запоминающем устройстве и т.п.). Другими словами, У-поле 12 можно использовать в качестве поля 27, которое определяет источники для последующей команды выполнения.
Помимо этого, в У-поле 12 можно описать команду назначения потока данных или указатель 25 потока данных, который определяет интерфейсы (источник, место назначения) и содержание обработки или функцию, и/или их комбинацию арифметико-логического устройства или другого блока обработки данных, например шаблона, имеющего готовый(ые) к ис пользованию маршрут(ы) данных. А именно, Уполе 12 используют в качестве поля 28 для описания для определения маршрутов данных реконфигураций, которые должны быть конвейеризированы в конвейеры (потоки данных или маршруты данных) для осуществления специфической обработки данных. В У-поле 12 также возможно описание указателя 25 потока данных для инициирования или выполнения потока данных и указателя 25 для прекращения потока данных. Соответственно потоки данных, имеющие реконфигурируемые маршруты данных, определяемые У-полем 12, обеспечивают возможность обработки независимо от счетчика команд для выборки кода из ЗУПВ кодов.
Понятно, что формат набора команд, изображаемый на фиг. 1 и 2, является только одним из примеров набора команд, имеющего два независимых поля команд согласно настоящему изобретению; и настоящее изобретение не ограничивается форматом, изображаемым на фиг. 1 и 2. Возможно также обеспечить еще один набор команд, в котором нет описания команд (ΝΟΡ) в полях Х и У и действуют только Х-поле 11 и У-поле 12. Также возможно обеспечить другой набор команд, содержащий комбинацию мнемооперанда и указателя потока данных и программ, имеющих такой набор команд. Также возможны программы, имеющие непрерывно описываемые команды назначения потока данных. Для ясности описания изобретения конкретный пример ниже не приводится, но программный продукт с командой назначения потока данных, независимо от формы описания, и носитель записи, записывающий такую программу, также входят в объем данного изобретения.
Фиг. 3 изображает пример набора 10 команд согласно данному изобретению. В наборе 10 команд номер _)-1: Т(]-1) - поле 16 типа в Хполе 11 указывает, что 32-разрядные непосредственно получаемые данные описываются в Уполе 12 того же набора команд. #00001234Н записывают как непосредственно получаемые данные в У-поле 12 набора Т(]-1) команд. В последующем наборе команд номер ф Т(ф МОУЕ описывают в поле 15 команды выполнения Х-поля и регистр К.3 указан в поле 17 назначения. Соответственно при вызове этого набора Т(|) номер .) арифметико-логическое устройство блока управления запоминает в регистре К3 непосредственно получаемые данные #00001234Н, определяемые в предыдущем наборе Т(]-1) команд.
Таким образом, в наборе 10 команд данного варианта осуществления изобретения (далее набор 10 команд номер .) называется как набор Т(]) команд) подготовку для команды выполнения, описываемой в наборе Т(|) команд, выполняют с помощью предыдущего набора Т(|-1) команд. Соответственно вся обработка, выполняемая с помощью арифметико-логического устройства блока управления, не может быть узнана только из набора Τ(ί), но однозначно определяется из двух наборов Т(]-1) и Τ(]) команд. При этом в поле 15 команды выполнения набора Т(|-1) команд еще одну команду выполнения для другой обработки, подготовленную с помощью У-поля 12 предыдущего набора команд, описывают независимо от У-поля 12 набора Т(|-1) команд. В поле 16 типа и У-поле 12 набора Τ(ί) команд описывают еще одну подготовительную информацию другой команды выполнения, описываемой в поле команды выполнения последующего набора команд.
В данном варианте осуществления подготовительную информацию (подготовительную команду) команды выполнения, описываемой в Х-поле 11 набора Τ(|) команд, описывают в Уполе 12 непосредственно предшествовавшего набора Т(]-1) команд. То есть в этом примере время ожидания подготовительной команды соответствует одному такту. Но подготовительную информацию можно описать в другом наборе команд до непосредственно предшествовавшего набора команд. Например, в управляющей программе блока управления, имеющего некоторую совокупность арифметикологических устройств, или для описываемого ниже управления потоком данных подготовительную команду не нужно описывать в непосредственно предшествующем наборе команд. При том условии, что состояние (среда или интерфейс) арифметико-логических устройств или конфигурации шаблонов, установленной подготовительными инструкциями, сохраняется до тех пор, пока набор команд, имеющий команду выполнения, соответствующую этой подготовительной команде, не будет выбран для выполнения, подготовительную команду можно описать в У-поле 12 набора 10 команд, который выполняют за несколько циклов команд до набора 10 команд, имеющего команду выполнения, соответствующую подготовительной команде.
Фиг. 4 иллюстрирует состояние, когда некоторую позицию данных запоминают согласно изображаемому на фиг. 3 набору команд в регистровом файле или запоминающем устройстве, функционирующем как регистры. Процессор выбирает набор Τ(|-1) команд номер .)-1, и непосредственно получаемые данные #00001234Н фиксируют в исходном регистре ΌΡ0.Κ арифметико-логического устройства процессора согласно подготовительной команде в его У-поле 12. Затем процессор выбирает следующий набор Τ(ί) номер ф и таким образом зафиксированные непосредственно получаемые данные запоминают в буфере 29Ь в цикле выполнения команды выполнения МОУЕ в Х-поле 11. Затем эти данные в буфере 29Ь запоминают по адресу, соответствующему регистру К.3 запоминающего устройства или регистровому файлу 29а. Даже если адрес назначения сохранения соответствует не регистрам, а запоминающим устройствам, то набор 10 команд данного варианта реализации обеспечивает возможность загрузки или сохранения данных в цикле команды выполнения за счет проведения обработки в соответствии с подготовительной информацией до команды выполнения.
Фиг. 5 схематически изображает структуру процессора (системы обработки данных) 38, имеющую блок 30 управления, выполненный с возможностью выполнения программы, имеющей наборы 10 команд согласно данному варианту осуществления. Микрокоманды или микропрограммы 18, имеющие наборы 10 команд согласно данному варианту осуществления, запоминают в ПЗУ 39 кодов. Блок 30 управления содержит блок 31 выборки для выборки набора команд микропрограммы из ПЗУ 39 кодов согласно счетчику команд, когда необходимо; и первый блок 32 управления выполнением, осуществляющий функцию декодирования Х-поля выбранного набора 10 команд, чтобы определить или утвердить функцию арифметикологического устройства 34 и выбрать регистры 346 назначения, чтобы зафиксировать в них результат логической операции арифметикологического устройства 34.
Блок 30 управления также содержит второй блок 33 управления выполнением, осуществляющий функцию декодирования У-поля 12 выбранного набора 10 команд на основе информации в поле 16 типа Х-поля 11 и выбора исходных регистров 345 арифметико-логического устройства (АЛУ) 34. Этот второй блок 33 управления выполнением выполнен с возможностью интерпретирования команды или информации в У-поле 12 независимо от описания Х-поля 11, за исключением информации в поле 16 типа. Если информация, описываемая в Уполе 12, определяет потоки данных, то второй блок 33 управления выполнением также осуществляет функцию выбора или определения источника и назначения арифметико-логического устройства 34, т.е. определения интерфейса арифметико-логического устройства 34, и также функцию непрерывного сохранения этого состояния до заранее определенного такта или до команды отмены. Если информация в У-поле 12 определяет потоки данных, то второй блок 33 управления выполнением также определяет функцию (содержание обработки) арифметикологического устройства 34 и сохраняет это состояние в течение заранее определенного периода.
Этот блок 30 управления также содержит некоторое множество комбинаций этих блоков 32, 33 управления выполнением и арифметикологических устройств 34, обеспечивая возможность выполнения разных видов обработки. Поэтому с помощью блока 30 управления, используемого в качестве базового компонента или периферийной схемы, возможно сформировать процессор обработки цифровых сигналов для высокоскоростной обработки данных изображения, быстродействующие общий центральный процессор или микропроцессор, выполненные с возможностью обработки цифрового сигнала, и т.п.
Фиг. 6-9 изображают некоторые типовые программы, выполняемые блоком 30 управления данного варианта осуществления. Типовая программа 41, изображаемая на фиг. 6, является примером программы, выполняемой с помощью обычного центрального процессора или процессора обработки цифровых сигналов. Эта программа извлекает максимальное значение из таблицы, начиная с адреса #8ТЛКТ и заканчивая обнаружением завершения #ΕΝΏ, указывающего последние данные.
Программа 42, изображаемая на фиг. 7, соответствует той же процедуре, что и фиг. 6; эту программу преобразуют, чтобы она соответствовала блоку 30 управления для выполнения наборов команд согласно настоящему изобретению. Программа 42 сформирована для выполнения двух команд с помощью одного набора команд. Изображаемую на фиг. 7 программу преобразуют с помощью компилятора в программу выполнения наборов команд в соответствии с настоящим изобретением для выполнения блоком 30 управления.
Фиг. 8 изображает компилированную программу 43. Подразумевается, что в программах 43 со ссылкой на программу 42 подготовка для команд 15 выполнения второго набора 10 команд осуществляется в У-поле 12 первого набора 10 команд. В первом наборе 10 команд поле 16 типа указывает, что непосредственно получаемые данные описывают в У-поле 12 в качестве подготовительной информации. Второй блок 23 управления выполнением декодирует Уполе 12 и подает непосредственно получаемые данные в исходные кэш-запоминающие устройства или регистры арифметико-логического устройства 34. Поэтому с помощью второго набора 10 команд команды 15 выполнения выполняют в арифметико-логическом устройстве 34, которое было приведено в готовность для этих команд выполнения. То есть в то время, когда выполняют второй набор 10 команд, для регистров, определяемых в поле 17 назначения, команды МОУЕ в поле 15 команды выполнения просто выполняют.
Таким образом, в соответствии с набором команд согласно настоящему изобретению команду выполнения можно отделить от команды подготовки, которая описывает интерфейс, для выполнения этой команды выполнения. Также возможно составить подготовительную команду, описываемую в наборе команд, который вызывают до команды выполнения. Поэтому согласно команде выполнения, описываемой в каждом наборе команд, просто осуществляют только выполнение, соответствующее самой арифметической операции, поскольку данные считаны в источнике для АЛУ 34. Соответственно обеспечивают хорошие характеристики управления выборкой и улучшением характеристики частоты выполнения. При этом, аналогично обычному конвейеру, хотя времена или тактирование операций по отношению к команде выполнения отличается от времени или тактирования обычного конвейера, такие операции, как вызов команды, декодирование регистра и другие виды обработки, выполняют поэтапно. Таким образом, также улучшают производительность. Помимо этого, программа в соответствии с этим примером выполнена с возможностью описания двух команд в одном наборе команд. Поэтому за счет параллельного выполнения множества команд посредством счетчика команд, подобно системе команд сверхбольшой длины (СКСД), также повышается скорость обработки.
Кроме того, в этой программе 43 ветвление по условию описывают в поле 15 команды выполнения четвертого набора команд и адрес назначения ветвления субъекта описывают в Уполе 12 предыдущего третьего набора команд. Соответственно адрес назначения ветвления устанавливают для регистра вызова во время или до выполнения четвертого набора команд. Поэтому при соблюдении условий ветвления набор команд по адресу назначения ветвления вызывают и/или выполняют без каких-либо потерь. Также возможно заранее выбрать команду по адресу назначения ветвления, чтобы можно было заранее сделать подготовку для выполнения команды выполнения по адресу назначения ветвления. Соответственно даже команда по адресу назначения ветвления выполняется без потери даже одного такта. Поэтому обработку точно определяют на «тактовой» основе.
Фиг. 9 иллюстрирует программу 44 согласно настоящему изобретению, которая описывает команды 25 назначения потока данных с помощью У-поля 12 набора 10 команд. Программный продукт 18, имеющий эти команды 25 назначения потока данных, обеспечивают в виде, запомненном в ПЗУ 39, ЗУПВ или в другом соответствующем носителе записи, считываемом системой обработки данных. При этом можно также распространять программное изделие 44 или 18, встроенное в передающую среду, которой обмениваются в сетевой среде.
Среди команд 25 назначения потока данных, описываемых в программе 44, ЭББЛЛ1 является командой инициирования потока данных; ЭББ-0С - командой, определяющей информацию соединений (информация интерфейсов) и содержание обработки (функцию) блока 34 арифметической обработки, формирующего поток данных (маршрут данных). ЭББ-ХЛТ команда, определяющая условия прекращения потока данных. Команда, определяющая местоположение завершения, 0ББЛЛ8, предназначается для ввода данных в определенный таким образом поток данных и для активизации обработки маршрута данных. Команды 25 назначения потока данных описываются в У-поле 12 в качестве подготовительной информации и декодируются с помощью второго блока 33 управления выполнением, и поэтому структуры (конфигурации) для обработки данных задаются блоками 34 обработки.
При выполнении изображаемой на фиг. 9 программы 44 второй блок 33 управления выполнением функционирует в качестве блока назначения потока данных согласно программной команде назначения потока данных, и управление выполняют согласно операции назначения потока данных. Более конкретно, второй блок 33 управления выполнением декодирует команды 25 назначения потока данных, вызываемые блоком 31 выборки, и создает интерфейсы ввода и/или вывода блока обработки 34 независимо от времени или тактирования выполнения, осуществляемого этим блоком 34 обработки. Помимо этого, в зависимости от команды 25 назначения потока данных, второй блок 33 управления выполнением также определяет или изменяет содержание обработки блока 34 обработки. Причем второй блок 33 управления выполнением также функционирует как планировщик 36 для ведения управления планированием сохранения интерфейсов каждого блока 34 обработки.
Соответственно согласно фиг. 10 второй блок 33 управления выполнением, функционирующий в качестве планировщика 36, определяет соответствующие интерфейсы (ввода/вывода) и содержание или функции обработки трех блоков 34 арифметической обработки и сохраняет эти состояния и/или конфигурации, пока не будут соблюдены условия прекращения. Соответственно с помощью потока данных или пути данных, конфигурированного с помощью этих блоков 34 арифметической обработки, изображаемая на фиг. 6 обработка продолжается последовательно независимо от счетчика команд. То есть за счет назначения потока данных специализированные схемы для этой обработки обеспечивают заранее в блоке 30 управления тремя блоками 34 арифметической обработки. Таким образом, обработку получения максимального значения выполняют независимо от управления счетчиком команд. Поток данных прекращают, если арифметико-логическое устройство 34, функционирующее как ΌΡΙ.δυΒ, решает, что ΌΡ1.Κ.1 соответствует #ΕΝΌ.
Таким образом, согласно фиг. 9, определение потока данных обеспечивает возможность той же обработки, что и изображаемая на фиг. 6 или 7 программа, без применения какой-либо команды ветвления. Соответственно, хотя блок 30 управления является универсальным, он эффективно осуществляет специфическую обработку, и с очень большой скоростью, аналогично блоку управления, имеющему специализированные схемы для специфической обработки.
С помощью набора команд и блока управления согласно настоящему изобретению предоставляется возможность обеспечения потоков данных и псевдопотоков данных для различных видов обработки в блоке управления. Эти потоки данных можно также применить в качестве шаблонов для выполнения других видов обработки или программ. Это означает, что с помощью средств программного обеспечения аппаратные средства можно модифицировать или изменить в любое время для конфигурации, соответствующей специализированной обработке; при этом эти аппаратурные конфигурации можно также реализовать с помощью других программ и/или аппаратных средств. Также возможно создать множество потоков данных, чтобы многокомандный поток можно было определить в блоке управления с помощью средств программного обеспечения. Это значительно облегчает параллельное выполнение множества видов обработки, и обеспечивается возможность произвольного управления их содержанием выполнения с помощью программирования.
Фиг. 11 иллюстрирует другой вариант осуществления системы обработки данных, выполненной с возможностью управления ею с помощью программы 41, имеющей команды 25 назначения потока данных. Эту систему 40 обработки данных обеспечивают в виде системной БИС, и она содержит ЗУПВ 39 кодов, имеющее записанную в нем программу 41, и блок 42 выборки, выполненный с возможностью выборки команды из ЗУПВ 39 кодов. Блок 42 выборки согласно данному варианту осуществления содержит декодер потока данных (ДПД) 42Ь для декодирования выбранной команды 25 назначения потока данных и декодер 42а для декодирования общей команды, не являющейся командами 25 назначения потока данных. Соответственно программа 41, управляющая этим процессором 40 данных, может содержать и команды 25 назначения потока данных, и другие команды, не являющиеся универсальными командами. Либо программу, содержащую команды 25 назначения потока данных, и программу, сформированную из других универсальных команд, обеспечивают в ЗУПВ 39 кодов, в результате чего команды из этих программ выбирают, синхронизируя их соответствующим способом.
Универсальную команду декодируют с помощью универсального декодера 42а и декодированный сигнал фр направляют для выполнения во встроенный универсальный процессор 43, содержащий арифметико-логические устройства, регистры и т. п. С другой стороны, команду 25 назначения потока данных декодируют с помощью ДПД 42Ь и декодированный сигнал φί подают в блок 45 обработки потока данных (БОПД) 45 для выполнения команд.
ДПД 45 данного варианта осуществления содержит множество блоков 46 обработки данных (БОД). Каждый БОД 46 является реконфигурируемым блоком обработки, имеющим маршруты) данных, сформированный(ые) соответствующим БМК. Соответственно БОД 46 содержит БМК 46с, ЗУПВ 46Ь или ПЗУ с запомненными в нем схемами преобразования в БМК 46с; и интерфейс 46й для управления вводом/выводом в/из БМК 46с; и узел 46а управления конфигурацией для подачи информации о схемах преобразования и информации об интерфейсе, запомненных в ЗУПВ 46Ь, в БМК 46с и интерфейс 46й в целях определения их конфигураций или состояний.
В этом процессоре 40 данных блок 42 выборки осуществляет операцию выборки набора команд, содержащего команду назначения потока данных, а БОПД 42Ь функционирует как блок назначения потока данных и выполняет процесс управления, содержащий операцию назначения потока данных. Другими словами, БОПД 42Ь декодирует команду назначения потока данных, чтобы назначить интерфейс 46й блока БОД 46 с помощью узла 46а управления конфигурацией каждого БОД 46 в БОПД 45. Соответственно команда 25 назначения потока данных обеспечивает возможность управления соединением блоков БОД 46 в БОПД 45, в результате чего маршрут(ы) данных, сформированный(ые) из совокупности блоков БОД 46, конфигурируют и/или управляют им гибким образом на программном уровне.
В фиг. 12(а) два маршрута данных 47а и 47Ь конфигурируют из двенадцати БОД 46. Наоборот, за счет изменения интерфейсов блоков БОД 46 из двенадцати БОД 46 согласно фиг. 12(Ь) конфигурируют еще один единый маршрут 48 данных, способный выполнять еще одну обработку данных, отличную от обработки согласно фиг. 12(а). Маршруты данных, конфигурируемые из множества блоков БОД 46, не ограничиваются этим примером, и за счет программных средств, использующих команды назначения потока данных, можно определить три или более маршрутов данных в БОПД 45 процессора данных 40. В результате этого, значительно упрощается параллельное выполнение множества процессов. Помимо этого, при наличии каких-либо БОД 46 можно сконфигурировать еще один соответствующий маршрут данных с их помощью для применения в другом процессоре данных.
Кроме того, обработку блоков БОД 46 для конфигурирования, реконфигурирования или изменения пути данных можно осуществлять без прерывания обработки данных в другом маршруте данных или без прерывания обработки во встроенном процессоре 43. Без изменения обработки в БМК 46с динамическое изменение маршрута данных становится возможным просто путем изменения созданного интерфейса
46й. В случае изменения содержания обработки (самой обработки в) БОД 46 время, нужное для повторного размещения информации, сокращают посредством БМК 46с, имеющей сравнительно небольшой размер схемы. Соответственно программа может гибким образом конфигурировать маршруты данных, соответствующие обработкам данных прикладной программы, обрабатываемой системой 40 обработки данных; и эти обработки данных выполняют с очень большой скоростью. Но современные БМК не обладают достаточными аппаратными средствами для осуществления преобразования информации в течение нескольких или нескольких десятков тактов согласно вышеизложенному. Поэтому для выполнения нужной обработки потока данных команду, до ее выполнения, нужно составить заранее от нескольких до нескольких десятков тактов, тем самым увеличив ограничения, подобные соответствию начала обработки данных и командам ветвления при описании команд назначения потока данных в программе.
Фиг. 13 схематически иллюстрирует систему обработки данных, обеспечиваемую в виде БИС 50, имеющей некоторое множество блоков обработки (шаблонов), выполненных с возможностью определения потока данных с помощью набора 10 команд, включая Х-поле 11 и У-поле 12 согласно настоящему изобретению. Эта системная БИС 50 содержит процессорную секцию для осуществления обработки данных; ЗУПВ кодов, хранящее программу 18 для управления обработкой в процессорной области 51; и ЗУПВ 53 данных, запоминающее прочую информацию управления или данные обработки; и при этом ЗУПВ 53 становится временным оперативным запоминающим устройством. Процессорная секция 51 включает в себя блок 55 выборки (БВ) для выборки программного кода, универсальный блок обработки данных (универсальное арифметико-логическое устройство, первый блок управления) 56 для ведения универсальной обработки, блок обработки потока данных (БОПД, второй блок управления) 57, выполненный с возможностью обработки данных по принципу потока данных.
БИС 50 в данном варианте осуществления декодирует программный код, который содержит набор, состоящий из Х-поля 11 и У-поля 12 в одном наборе 10 команд, и соответственно выполняет обработку. БВ 55 содержит регистр выборки (РК(Х))61х для запоминания команды в Х-поле 11 выбранного набора 10 команд и регистр выборки (РК(У))61у для запоминания команды в У-поле 12. БВ 55 также содержит Хдекодер 62х для декодирования команды, зафиксированной в БК(Х)61х, и У-декодер 62у для декодирования команды, зафиксированной в РК(У)61у. БВ 55 также содержит регистр (РС) 63 для запоминания адреса последующего набора команд в соответствии с результатом декоди рования этих декодеров 62х и 62у; РС 63 функционирует как счетчик команд. Последующий набор команд выбирают в любое время из заранее определенного адреса программы, запомненного в ЗУПВ 52 кода.
В этой БИС 50 Х-декодер 62х функционирует как указанный первый блок 32 управления выполнением и У-декодер 62у функционирует как второй блок 33 управления выполнением, т.е. блок назначения потока данных. Соответственно У-декодер 62у выполняет операцию назначения потока данных согласно данному изобретению - декодирование команды потока данных, описываемой в У-поле 12 набора 10 команд, и на основе декодирования - создание интерфейсов ввода/вывода блоков обработки блока БОПД 57 для конфигурирования соответствующего маршрута данных. Таким образом, согласно способу управления процессора 50 данных в соответствии с фиг. 13 блок 55 выборки выполняет выборку команды 25 назначения потока данных, которая назначает интерфейс ввода/вывода блока обработки независимо от времени или тактирования выполнения блока обработки. У-декодер 62у выполняет операцию назначения потока данных - декодирование команды 25 назначения потока данных и создание интерфейсов ввода и/или вывода блоков обработки в целях конфигурирования пути данных из множества блоков обработки.
Универсальное арифметико-логическое устройство 56 содержит арифметическое устройство (арифметико-логическое устройство) 34, характеризуемое на фиг. 5, и группу 35 регистров для запоминания входных/выходных данных арифметико-логического устройства 34. При том условии, что команды, декодируемые в БВ 55, являются командой выполнения и/или подготовительной информацией арифметикологического устройства 34, сигнал фх декодирования Х-декодера 62х и сигнал фу декодирования У-декодера 62у направляют соответственно в универсальное арифметико-логическое устройство 56 для выполнения в арифметикологическом устройстве 34 упоминаемой выше обработки.
БОПД 57 имеет секцию 72 шаблонов, в которой имеется множество шаблонов 71 для конфигурирования одного потока из множества потоков данных или псевдопотоков данных для различных видов обработки. Согласно приводимому выше описанию относительно фиг. 9 и 10 каждый шаблон 71 является блоком обработки (схемой обработки), имеющим функцию специфического маршрута данных или потока данных, таким как арифметическое устройство (арифметико-логическое устройство). Когда Удекодер 62у декодирует команды 25 назначения потока данных, описываемые как подготовительная информация в У-поле 12, то соответствующие интерфейсы и содержание функции обработки в шаблонах 71, т.е. блоках обработки в БОПД 57, создают на основе сигнала фу.
Соответственно обеспечивается возможность изменения соответствующих соединений шаблонов 71 и процессов в этих шаблонах 71 с помощью указателя 25 потока данных, описываемого в У-поле 12. Таким образом, с помощью комбинации этих шаблонов 71 маршрут(ы) данных, соответствующий(ие) для специфической обработки данных, гибким образом конфигурируют в области 72 шаблонов с помощью указателя потока данных, содержащегося в программе 18. Таким образом, специализированную(ые) схему(ы) для специфической обработки обеспечивают в процессоре 51, в результате чего обработку в нем осуществляют независимо от управления, осуществляемого счетчиком команд. Другими словами, благодаря командам 25 назначения потока данных обеспечивается возможность изменять соответствующие входы/выходы шаблонов 71 и процессы в шаблонах 71 с помощью средств программного обеспечения; аппаратурные средства процессора 51 модифицируют или реконфигурируют в любое время для обеспечения конфигурации, соответствующей специфической обработке данных.
Согласно фиг. 14(а) для выполнения некоторой обработки входных данных φίη с получением выходных данных фои! с помощью БОПД 57 этого процессора 51 можно создать соответствующие интерфейсы шаблонов 71 с помощью указателя 25 потока данных, чтобы обработка данных осуществлялась шаблонами 1-1, 1-2 и 13, последовательно соединенными друг с другом согласно фиг. 14(Ь). Аналогично для других шаблонов 71 в блоке 72 шаблонов можно создать их соответствующие интерфейсы, чтобы сконфигурировать маршруты данных или потоки данных с помощью соответствующих комбинаций шаблонов 71. Таким образом, множество специализированных блоков обработки или специализированных маршрутов 73 данных, соответствующих обработке входных данных φίη, конфигурируют в любое время в секции 72 шаблонов посредством программы 18.
С другой стороны, если изменяют процесс, выполняемый с входными данными φίη, то возможно изменить соединение между шаблонами 71 с помощью команд 25 назначения потока данных согласно фиг. 14(с). У-декодер 62у декодирует команды 25 назначения потока данных, чтобы изменить соответствующие интерфейсы соответствующих шаблонов 71. Этот процесс управления (операция назначения потока данных) У-декодера 62у обеспечивает возможность конфигурирования одного маршрута или совокупности маршрутов 73 данных, соответствующих выполнению других разных видов обработки, в секции 72 шаблонов с помощью шаблонов 1-1, 2-η, т-η, соединенных друг с другом последовательно.
Эти шаблоны 71 не ограничены комбинированием согласно фиг. 14, и их также можно скомбинировать согласно фиг. 12. Единый блок обработки, сформированный из единого шаблона 71 или из комбинации шаблонов 71, можно также назначить для другой обработки или другой программы, выполняемых параллельно. Если множество процессоров 51 соединены друг с другом с помощью соответствующей шины, то также возможно сконфигурировать последовательность (маршрут данных) 73, имеющую шаблоны 71, объединенные с другой обработкой данных, которую, в основном, выполняют другим процессором 51; поэтому возможно очень эффективное использование ресурсов обработки данных, т. е. шаблонов 71.
В противоположность БМК, предназначаемого для выполнения даже таких простых логических вентилей, как «И» и «ИЛИ», шаблон 71 согласно данному изобретению является блоком обработки данных высокого уровня, содержащим некоторый специфический маршрут данных, в основном, выполняющий функцию арифметикологического устройства или других логических вентилей. Соответствующие интерфейсы шаблонов 71 определяют или переопределяют с помощью команд 25 назначения потока данных, чтобы изменять комбинацию шаблонов 71. Поэтому конфигурируют более крупный маршрут данных, соответствующий нужной специфической обработке. При этом содержание обработки или саму обработку, выполняемую в шаблонах 71, можно также определить с помощью команд 25 назначения потока данных за счет изменения соединения арифметико-логического устройства или других логических вентилей в шаблоне 71. То есть содержание обработки, выполняемой в шаблонах 71, также определяют и изменяют за счет выбора некоторой части внутреннего маршрута данных в шаблоне 71.
Соответственно в том случае, когда аппаратные средства БОПД 57, имеющие множество шаблонов 71 в этом примере, реконфигурируют для специфической обработки данных, то необходимости перераспределять всю микросхему, как в БМК, или даже осуществлять перераспределение на основе ограниченного логического блоков не имеется. Вместо этого, путем коммутации маршрутов данных, ранее обеспеченных в шаблонах 71 или в секции 72 шаблонов, или за счет выбора части маршрутов данных нужные маршруты данных выполняют с помощью арифметико-логических устройств или логических вентилей, подготовленных заранее. Другими словами, в шаблоне 71 соединения логических вентилей только повторно устанавливают или реконфигурируют с минимальными требованиями и даже между шаблонами 71 соединения только повторно устанавливают или переконфигурируют в пределах минимальных требований. Благодаря этому аппаратные средства можно изменить с получением конфигурации, соответствующей специфической обработке данных, в течение очень короткого или ограниченного времени, в течение нескольких тактов.
Поскольку БМК не содержит логических вентилей, то они обладают очень высокой степенью универсальности. Но БМК содержит большое число проводных соединений, которые не нужны для формирования логических схем в целях выполнения функций специфической прикладной программы, и эта избыточность не позволяет сократить длину путей сигнала. БМК занимает большую площадь, чем специализированная интегральная схема СПИС, сообразно выполняемой прикладной программе, и также имеет пониженные характеристики управления выборкой. В противоположность этому, процессор 51, использующий шаблоны 71 согласно данному варианту осуществления с соответствующими логическими вентилями, заранее может исключить появление большой неиспользуемой площади как в БМК и также повышает характеристики управления выборкой. Соответственно блоком 57 обработки данных в этом варианте осуществления на основе шаблонов 71 является реконфигурируемый процессор, выполненный с возможностью изменения аппаратных средств с помощью программы. В соответствии с данным изобретением обеспечивается возможность обеспечения системы обработки данных, обладающей как высоким уровнем гибкости средств программного обеспечения, так и повышенным уровнем быстродействия аппаратных средств по сравнению с процессором, применяющим БМК.
Соответствующие логические вентили в этих шаблонах 71 предусмотрены заранее, и поэтому логические вентили, нужные для выполнения специфической прикладной программы, выполнены с надлежащей плотностью. Соответственно блок обработки данных, применяющий шаблоны 71, экономичен. Если процессор данных сформирован из БМК, то для компенсирования снижения плотности упаковки необходимо учитывать частую загрузку программы для реконфигурации логических схем. Время, требуемое для этой загрузки, также снижает скорость обработки. В противоположность этому, поскольку процессор 51, использующий шаблоны 71, имеет высокую плотность упаковки, становится менее необходимым компенсирование снижения плотности и в меньшей степени требуется частая реконфигурация аппаратных средств. При этом управление реконфигурациями осуществляется в единицах тактов. В этом отношении имеется возможность обеспечить компактную быстродействующую систему обработки данных, выполненную с возможностью реконфигурирования аппаратных средств с помощью средств программного обеспечения, в отличие от реконфигурируемого процессора на основе БМК.
Помимо этого, БОПД 57, изображаемый на фиг. 13, включает в себя регистр конфигурации (СР ЕС) 75, выполненный с возможностью коллективно определять и создавать соответствующие интерфейсы и содержание обработки (далее - «данные конфигурации») шаблонов 71 в секции 72 шаблонов, и ЗУПВ (КЗУПВ) 76 конфигурации, храня множество данных С1 конфигурации (далее ί представляет соответствующее целое число), подаваемых в СРЕС 75. Команду, подобную ΌΡ8ΕΤ С1, обеспечивают в качестве команды указателей 25 потока данных. Когда У-декодер 62у декодирует эту команду, нужные данные конфигурации из числа данных С1 конфигурации, запомненных в КЗУПВ 76, загружают в СРЕС 75. В результате этого, конфигурации множества шаблонов 71, имеющихся в секции 72 шаблонов, изменяют коллективно. Либо конфигурацию можно изменить на основе средства обработки, сформированного из некоторого множества шаблонов 71.
Также возможно создать или изменить конфигурацию отдельного шаблона 71, когда Удекодер 62у декодирует команду 25 назначения потока данных, такую как упоминаемые выше ΩΕΕΛνΐ или ОЕБАУС. При этом, как указано выше, поскольку БОПД 57 выполнен с возможностью изменения с помощью одной команды конфигурации множества шаблонов 71, которые требуют значительного количества информации, эффективность команд повышается, и повышается эффективность команды, и также сокращается время, затрачиваемое на реконфигурацию.
БОПД 57 дополнительно содержит контроллер 77 для поблочной загрузки данных конфигурации в КЗУПВ 76. Команду ΌΡΕΘΆΌ ВС1 обеспечивают как команду указателя 25 потока данных. Когда У-декодер 62у декодирует эту команду, некоторое число данных С1 конфигурации для текущей обработки или имеющей место в будущем обработки заранее загружают в запоминающее устройство конфигурации, т. е. КЗУПВ 76, из числа большого количества данных 78 конфигурации, подготовленных заранее в ЗУПВ 53 данных или т.п. За счет этой структуры быстродействующее ассоциативное запоминающее устройство небольшой емкости или т. п. можно использовать как КЗУПВ 76, и аппаратные средства становятся более гибко и быстро реконфигурируемыми.
Фиг. 13 изображает пример шаблона 71. Этот шаблон 71 выполнен с возможностью обмена данными с другим шаблоном 71 посредством ЗУПВ потока данных (ЗУПВПД) 79, предусмотренного в БОПД 57. Результат обработки другого шаблона 71 вводят через интерфейс 81 ввода/вывода во входные кэш-памяти 82а-82б, и затем обрабатывают и выводят в кэш-памяти вывода 83а-83б. Этот шаблон 71 имеет путь 88 данных, выполненный с возможностью последующей обработки данных А, В, С и Ό, соответственно запомненных во входных кэш-памятях
82а-82б, и запоминания результата операции в выходной кэш-памяти 83Ь и запоминания результата сравнения в выходной кэш-памяти 83с. Результат обработки шаблона 71 снова выводят в другой шаблон через интерфейс 81 ввода/вывода и ЗУПВПД 79.
Если А=?
То (С+В)=Б
Либо (С-Б)=В ... (А)
Этот шаблон 71 имеет свой собственный регистр 84 конфигурации. Данные, запоминаемые в регистре 84 в этом шаблоне 71, управляют множеством селекторов 89 для выбора сигнала, вводимого в логические вентили, такие как узел управления 85, сумматор 86 и компаратор 87. Соответственно за счет изменения данных в регистре 84 конфигурации в шаблоне 71 обеспечивают возможность осуществления еще одной обработки с помощью части маршрута 88 данных. Например, в шаблоне 71 также обеспечивают следующую обработку, без применения узла 85 управления.
(В+С)=Б (В-С)=Б ... (В)
Аналогично путем изменения данных в регистре 84 конфигурации некоторую часть маршрута 88 данных можно использовать, чтобы шаблон 71 применить в качестве схемы определения состояния с помощью узла 85 управления, схемы суммирования/вычитания, использующей сумматор 86, или схемы сравнения с помощью компаратора 87. Эти логические вентили сформированы из специализированных схем, содержащихся в шаблоне 71, и поэтому не имеется потерь с точки зрения структуры схем и времени обработки. Также обеспечивается возможность изменения конфигурации данных ввода и вывода в/из шаблона 71 с помощью интерфейса 81, которым управляет регистр 84 конфигурации. Таким образом, шаблон 71 становится всем потоком данных или его частью для выполнения нужной обработки данных.
Этот шаблон 71 также выполнен с возможностью перезаписи данных в его собственном регистре 84 конфигурации на основе либо данных из указанного СРЕС 75, либо данных из У-декодера (УБЕС) 62у в БВ 55; и выбор перезаписи осуществляют с помощью сигнала от Удекодера 62у. То есть конфигурацией этого шаблона 71 управляют с помощью У-декодера 62у или операцией назначения потока данных, выполняемой У-декодером 62у согласно командам 25 назначения потока данных. Поэтому обеспечивается возможность обеих конфигураций аппаратных средств: одна - для изменения аппаратурной конфигурации шаблона 71 на основе команды ΌΡ8ΕΤ или т.п., вместе с другим(и) шаблоном(ами) согласно данным С1 конфигурации, запомненным в КЗУПВ 76; и другая - для выбора некоторой части специфического маршрута 88 данных шаблона 71 с помощью данных в регистре 84 конфигурации, созданном командой 25 назначения потока данных.
Соответственно конфигурацию шаблонов изменяют с помощью команд 25 назначения потока данных либо отдельно, либо группами или блоками, в результате чего маршрут данных процессора 51 гибко реконфигурируется.
Структура шаблона 71 не ограничивается описываемым выше вариантом осуществления. Возможно обеспечить соответствующие типы и число шаблонов, имеющих логические вентили, для комбинирования, выбора части внутреннего маршрута данных и изменения комбинации шаблонов 71 для выполнения разных видов обработки данных. В частности, согласно настоящему изобретению обеспечивают компактные маршруты данных в виде нескольких типов шаблонов. Таким образом, за счет назначения комбинации маршрутов данных выполняют обработку потока данных, в результате чего повышают производительность специфической обработки. При этом какую-либо обработку, которую невозможно выполнить с помощью шаблонов, выполняют с помощью функций универсального арифметико-логического устройства 56 процессора 51. В универсальном арифметико-логическом устройстве 56 этого процессора потери, вызванные ветвлением или другими причинами, сводятся к минимуму с помощью подготовительных команд, описываемых в У-поле 12 набора 10 команд. Поэтому системная БИС 50, включающая в себя процессор 51 данного варианта осуществления, обеспечивает возможность создания высокопроизводительной БИС, способной гибко изменять аппаратные средства согласно описанию обработки программами; также эта БИС является быстродействующей и производит обработку в реальном времени. Эта БИС также гибко производит изменения в прикладной программе, спецификации без снижения производительности обработки в результате изменений в спецификации.
Если сущность прикладной программы, выполняемой этой системной БИС 50, известна при разработке или конструировании системной БИС 50, то возможно конфигурировать секцию шаблонов, в основном, с помощью шаблонов, имеющих конфигурацию, соответствующую обработке данной прикладной программы. В результате этого, с помощью обработки потока данных можно выполнять большее число видов обработки данных, тем самым повышая производительность обработки. Если универсальная БИС имеет системную БИС 50, то обеспечивается возможность конфигурации секции 72 шаблонов, в основном, с помощью шаблонов, соответствующих обработке, которая часто происходит в универсальной прикладной программе, такая как операция с плавающей запятой, умножение и деление, обработка изображений и пр.
Таким образом, набор команд и система обработки данных согласно настоящему изобретению делают возможным создание БИС, имеющей поток данных или псевдопоток данных и выполняющей разные виды обработки; и с помощью программных средств обеспечивается возможность изменения аппаратных средств для выполнения потока данных в любое время с получением конфигурации, соответствующей конкретному виду обработки данных. Упомянутая архитектура для осуществления обработки потока данных с помощью комбинации шаблонов, т.е. БОПД 52 или область 72 шаблонов, может быть предусмотрена в блоке управления или в системе обработки данных, такой как процессор, независимо от набора 10 команд, имеющего Х-поле 11 и У-поле 12. Поэтому возможно обеспечить систему обработки данных, выполненную с возможностью ведения обработки с высокой скоростью, изменения аппаратных средств за более короткое время и также имеющую улучшенные характеристики управления выборкой по сравнению с БМК.
Также возможно сконфигурировать системную БИС, содержащую БОПД 57 или область 72 шаблонов вместе с обычным универсальным встроенным процессором, т. е. с процессором, работающим с мнемокодами. В этом случае какую-либо обработку, которую нельзя осуществить с помощью шаблонов 71, можно выполнить с помощью универсального процессора. Как указано выше, обычный процессор имеет такие проблемы, как потери из-за ветвления и потеря тактов для подготовки регистров к арифметической обработке. Соответственно желательно, чтобы в этом варианте осуществления применялся процессор 51, выполненный с возможностью декодирования набора 10 команд, имеющего X- и У-поля для выполнения.
Помимо этого, с помощью процессора 51 и набора 10 команд согласно данному варианту осуществления конфигурации БОПД 57 создают или изменяют до выполнения обработки данных параллельно с другой обработкой, выполняемой с помощью У-поля 12. Это целесообразно с точки зрения эффективности обработки и программы. Эффективность программ также повышают за счет описания обычного командного мнемокода и кода выполнения потока данных в едином наборе команд. Согласно приводимым выше пояснениям функция У-поля 12 набора 10 команд согласно данному варианту осуществления не ограничивается описанием командного кода потока данных.
Процессор согласно данному изобретению выполнен с возможностью изменения физической конфигурации или структуры пути данных с помощью У-поля 12 до выполнения. В противоположность этому, в обычном процессоре множество микропроцессоров соединены друг с другом посредством совместно используемой памяти. Поэтому, даже если имеется процессор в состоянии простоя, то внутренний блок обработки данных этого процессора нельзя использовать извне. В процессоре данных согласно данному изобретению создание соответствующего потока данных обеспечивает возможность применения неиспользуемых аппаратных средств другим блоком управления или процессором данных.
В качестве дополнительных эффектов данного изобретения можно отметить, что в блоке управления согласно данному изобретению и в процессоре, который использует этот блок, повышена эффективность последовательности выполнения команд и также обеспечены независимость и повышенная степень свободы (доступности) внутреннего маршрута данных; поэтому обработку последовательно выполняют при доступности исполнительных аппаратных средств, даже если одновременно подают последовательности команд для обработки, имеющие контексты совершенно разных свойств.
В настоящее время преимущества совместного проектирования аппаратных средств и программных средств проявляются все в большей степени, и комбинация набора команд и блока управления в соответствии с настоящим изобретением является ответом на вопрос о том, как алгоритмы и/или обработку данных, запрашиваемую пользователем, необходимо выполнить эффективно и экономично в разумных пределах затрат на аппаратуру. Например, исходя из данных и/или информации, относящихся к набору команд согласно настоящему изобретению (ранее - ΌΑΡ/ΏΝΑ), отражающему конфигурации маршрутов данных, уже выполненных, и к аппаратуре и/или последовательности, впоследствии добавленных для осуществления обработки, новый тип комбинации, который соответствует новому маршруту данных (поток данных), описываемому программным обеспечением, становится наиболее оптимальным решением для обработки и улучшает производительность, при этом сводя к минимуму затраты на аппаратные средства.
В обычных аппаратных средствах разделение конфигурации на элементы менее вероятно. Поэтому отсутствует гибкость в сочетании элементов, и в принципе основное решение повышения производительности заключается во введении единого нового маршрута данных. Поэтому трудно оценить обычную архитектуру в числовом выражении как с точки зрения накопления некоторой информации для повышения производительности, так и с точки зрения введения аппаратурной информации, фактически выполняемой для реализации требуемого повышения производительности, тем самым затрудняя создание базы данных. В противоположность этому, согласно данному изобретению, поскольку компактные маршруты данных обеспечивают как шаблоны и комбинацию маршрутов данных назначают для проведения обработки потока данных, поэтому взаимодействие между аппаратными средствами и средствами программного обеспечения нетрудно оценить очень точно для повышения производительности. Также возможно накопление компромиссной информации между аппаратными средствами и программными средствами, и поэтому комбинацию маршрутов данных можно теснее увязать для повышения производительности обработки данных. Это также делает возможным накопление оценочных данных по стоимости, характеристикам нужной обработки и характеристикам выполнения, непосредственно относящимся и к аппаратным средствам, и к программному обеспечению. При этом, поскольку маршруты данных выполняют без прерывания выполнения основной обработки или универсальной обработки, ожидаемый результат помимо запрашиваемой производительности можно прогнозировать из накопленных прошлых данных аппаратных средств и наборов команд согласно настоящему изобретению.
Поэтому настоящее изобретение не только значительно сокращает текущие затраты на конструирование и спецификацию, но также обеспечивает новую конструкцию с минимальным компромиссом между новыми аппаратными средствами и программным обеспечением. При этом облегчается соответствие типу обработки, обеспечение внутреннего маршрута данных для внешнего использования, и поэтому обеспечивается возможность совместного использования аппаратных ресурсов. Соответственно параллельная обработка с помощью множества модулей согласно настоящему изобретению (ΌΑΡ/ΌΝΑ-модули) является одним из наиболее рациональных аспектов для выполнения компактных аппаратных средств.
Необходимо отметить, что указанная система обработки данных и набор команд являются одним из вариантов осуществления настоящего изобретения, так как в процессоре данных можно использовать внешнее ЗУПВ или ПЗУ вместо ЗУПВ кодов или ЗУПВ данных или т.п., и можно дополнительно обеспечить интерфейс с внешним ДЗУПВ или СЗУПВ или т.п. Процессоры данных, дополнительно выполняющие известные функции в качестве процессора данных, такие как системная БИС, например интерфейс ввода/вывода для соединения с другим внешним устройством, также входят в объем данного изобретения. Соответственно настоящее изобретение определено в приводимой ниже формуле изобретения, и все модификации, охватываемые формулой, входят в объем данного изобретения.
Как упоминалось выше, данное изобретение обеспечивает возможность гибкой перекомпоновки маршрута(ов) данных согласно программе(ам) за счет изменения соответствующих интерфейсов множества блоков обработки со29 гласно командам назначения потока данных. Это обстоятельство обеспечивает возможность гибкого выполнения отдельных сложных видов обработки данных с помощью аппаратных средств с высокой скоростью, без наличия различных специализированных схем, конкретно соотнесенных с соответствующими видами обработки данных. При этом за счет применения блоков обработки, шаблонов со специфическим маршрутом данных согласно настоящему изобретению маршруты данных (потоки данных), обладающие способностью увеличить производительность, можно накапливать с ресурсами, т.е. с шаблонами и наборами команд для применения шаблонов. Таким образом, обеспечивается возможность корректировать в любое время накопленные маршруты данных на основе вводимой впоследствии информации об аппаратурной конфигурации и информации последовательности для выполнения обработки данных, чтобы обеспечить удобное получение оптимального решения. Соответственно с помощью настоящего изобретения обеспечивается более рациональное совместное использование ресурсов прикладными программами, совместное использование в аппаратных средствах, и затраты на аппаратные средства для повышения производительности становятся более эффективными по сравнению с обычным уровнем техники; и данное изобретение явится значительным вкладом в техническую инфраструктуру для создания сетевого общества.
Промышленная применимость
Систему обработки данных согласно настоящему изобретению обеспечивают как процессор, БИС или т.п., выполненные с возможностью выполнения различных видов обработки данных, и она применима не только для интегральных схем электронных устройств, но также и для оптических устройств и даже для оптических устройств с интегральными схемами, в которых интегрированы электронные и оптические устройства. В частности, программа управления, содержащая набор команд согласно настоящему изобретению, и процессор данных выполнены с возможностью гибкого выполнения обработки данных с высокой скоростью и предпочтительны для процессов, для которых необходимы быстродействие и работа в реальном времени, например сетевая обработка данных и обработка изображений.

Claims (21)

  1. ФОРМУЛА ИЗОБРЕТЕНИЯ
    1. Программный продукт для управления системой обработки данных, включающей в себя множество блоков обработки, содержащий команду назначения потока данных для назначения интерфейсов ввода и/или вывода по меньшей мере одного из блоков обработки независимо от тактирования выполнения, осуществляемого для блока обработки, для определения маршрута данных, конфигурируемого блоком обработки.
  2. 2. Программный продукт по п.1, отличающийся тем, что команда назначения потока данных содержит информацию для определения содержания обработки в блоке обработки.
  3. 3. Программный продукт по п.1, отличающийся тем, что блок обработки содержит специализированный внутренний маршрут данных и команда назначения потока данных содержит информацию для выбора некоторой части внутреннего маршрута данных.
  4. 4. Программный продукт по п.1, отличающийся тем, что команда назначения потока данных содержит информацию для определения интерфейсов ввода и/или вывода в средстве обработки, сформированного из множества блоков обработки.
  5. 5. Программный продукт по п.4, отличающийся тем, что система обработки данных содержит запоминающее устройство для запоминания множества данных конфигурации, определяющих интерфейсы ввода и/или вывода в средстве обработки, и команда назначения потока данных содержит информацию для изменения интерфейсов ввода и/или вывода в средстве обработки путём выбора данных из множества данных конфигурации, сохраненных в запоминающем устройстве.
  6. 6. Носитель записи для сохранения на нём программы для управления системой обработки данных, содержащей блоки обработки, при этом программа содержит команду назначения потока данных для обозначения интерфейсов ввода и/или вывода по меньшей мере одного из блоков обработки независимо от тактирования выполнения, для блока обработки, для определения маршрута данных, конфигурируемого блоком обработки.
  7. 7. Передающая среда, имеющая встроенный в ней программный продукт для управления системой обработки данных, содержащей блоки обработки; при этом программа содержит команду назначения потока данных для назначения интерфейсов ввода и/или вывода по меньшей мере одного из блоков обработки независимо от тактирования выполнения, для блока обработки, для определения маршрута данных, конфигурируемого блоком обработки.
  8. 8. Система обработки данных, содержащая множество блоков обработки, содержащих изменяемые интерфейсы ввода и/или вывода, блок для выборки команды назначения потока данных для назначения интерфейсов ввода и/или вывода по меньшей мере одного из блоков обработки независимо от тактирования выполнения, осуществляемого для блока обработки, и блок назначения потока данных для декодирования команды назначения потока данных и создания интерфейсов ввода и/или вывода блока обработки для конфигурирования маршрута данных из множества блоков обработки.
  9. 9. Система обработки данных по п.8, отличающаяся тем, что блок назначения потока данных изменяет содержание обработки в блоке обработки согласно команде назначения потока данных.
  10. 10. Система обработки данных по п.8, отличающаяся тем, что блок обработки включает в себя специфический внутренний маршрут данных.
  11. 11. Система обработки данных по п.10, отличающаяся тем, что блок обработки включает в себя по меньшей мере один логический вентиль и внутренний маршрут данных, соединяющий логический вентиль с интерфейсами ввода/вывода.
  12. 12. Система обработки данных по п.10, отличающаяся тем, что блок назначения потока данных выбирает некоторую часть внутреннего маршрута данных блока обработки согласно команде назначения потока данных.
  13. 13. Система обработки данных по п.8, отличающаяся тем, что блок назначения потока данных выполняет функцию планировщика для управления интерфейсами блока обработки.
  14. 14. Система обработки данных по п.8, отличающаяся тем, что блок назначения потока данных изменяет интерфейсы ввода и/или вывода в средстве обработки, сформированном из множества блоков обработки согласно команде назначения.
  15. 15. Система обработки данных по п.14, отличающаяся тем, что также содержит запоминающее устройство, сохраняющее множество данных конфигурации, определяющих интерфейсы ввода и/или вывода в средстве обработки, причём блок назначения потока данных изменяет интерфейсы ввода и/или вывода в средстве обработки путём выбора - согласно команде назначения потока данных - данных из множества данных конфигурации, сохраненных в запоминающем устройстве.
  16. 16. Способ управления системой обработки данных, содержащей множество блоков обра ботки, имеющих изменяемые интерфейсы ввода и/или вывода, согласно которому выбирают команду назначения потока данных для назначения интерфейсов ввода и/или вывода по меньшей мере одного из блоков обработки независимо от тактирования выполнения блока обработки и осуществляют операцию назначения потока данных - декодируют команду назначения потока данных, и создают интерфейсы ввода и/или вывода блока обработки для конфигурирования маршрута данных из множества блоков обработки.
  17. 17. Способ по п.16, отличающийся тем, что в операции назначения потока данных содержание обработки в блоке обработки изменяют согласно команде назначения потока данных.
  18. 18. Способ по п.16, отличающийся тем, что блок обработки содержит специфический внутренний маршрут данных и в операции назначения потока данных некоторую часть внутреннего маршрута данных блока обработки выбирают согласно команде назначения потока данных.
  19. 19. Способ по п.16, отличающийся тем, что в операции назначения потока данных осуществляют планирование сохранения интерфейсов блока обработки.
  20. 20. Способ по п.16, отличающийся тем, что в операции назначения потока данных интерфейсы ввода и/или вывода в средстве обработки, сформированном из множества блоков обработки, изменяют согласно команде назначения потока данных.
  21. 21. Способ по п.20, отличающийся тем, что система обработки данных содержит запоминающее устройство, сохраняющее множество данных обработки, определяющих интерфейсы ввода и/или вывода в средстве обработки, причём в операции назначения потока данных интерфейсы ввода и/или вывода в средстве обработки изменяют путём выбора данных из множества данных конфигурации, сохраненных в запоминающем устройстве, согласно команде назначения потока данных.
EA200200309A 1999-08-30 2000-08-30 Управляющий программный продукт и система обработки данных EA004071B1 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP24413799 1999-08-30
PCT/JP2000/005849 WO2001016711A1 (fr) 1999-08-30 2000-08-30 Progiciel et processeur de donnees

Publications (2)

Publication Number Publication Date
EA200200309A1 EA200200309A1 (ru) 2002-08-29
EA004071B1 true EA004071B1 (ru) 2003-12-25

Family

ID=17114319

Family Applications (2)

Application Number Title Priority Date Filing Date
EA200200310A EA004196B1 (ru) 1999-08-30 2000-08-30 Управляющий программный продукт и система обработки данных
EA200200309A EA004071B1 (ru) 1999-08-30 2000-08-30 Управляющий программный продукт и система обработки данных

Family Applications Before (1)

Application Number Title Priority Date Filing Date
EA200200310A EA004196B1 (ru) 1999-08-30 2000-08-30 Управляющий программный продукт и система обработки данных

Country Status (16)

Country Link
US (4) US6904514B1 (ru)
EP (2) EP1215569B1 (ru)
JP (2) JP4234925B2 (ru)
KR (2) KR100497078B1 (ru)
CN (3) CN1148647C (ru)
AT (1) ATE466330T1 (ru)
AU (3) AU782238B2 (ru)
BR (2) BR0013595A (ru)
CA (2) CA2348261C (ru)
DE (1) DE60044300D1 (ru)
EA (2) EA004196B1 (ru)
HK (1) HK1047326A1 (ru)
IL (4) IL142676A0 (ru)
NZ (2) NZ516680A (ru)
TW (2) TW495711B (ru)
WO (3) WO2001016711A1 (ru)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904514B1 (en) * 1999-08-30 2005-06-07 Ipflex Inc. Data processor
JP2003140886A (ja) * 2001-10-31 2003-05-16 Seiko Epson Corp インストラクションセット及びコンパイラ
US7093225B2 (en) * 2002-07-17 2006-08-15 Osann Robert Jr FPGA with hybrid interconnect
US7679398B2 (en) * 2002-07-17 2010-03-16 Osann Jr Robert Reprogrammable instruction DSP
JP4002151B2 (ja) * 2002-07-31 2007-10-31 富士通株式会社 情報処理装置
EP1636725B1 (en) * 2003-06-18 2018-05-16 Imagination Technologies Limited Circuit register and method therefor
US20070186076A1 (en) * 2003-06-18 2007-08-09 Jones Anthony M Data pipeline transport system
US20050097306A1 (en) * 2003-09-29 2005-05-05 Gajski Daniel D. No-instruction-set-computer processor
DE10360998B4 (de) * 2003-12-23 2008-09-04 Infineon Technologies Ag Schutz von Chips gegen Attacken
US7937557B2 (en) 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US9047094B2 (en) * 2004-03-31 2015-06-02 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor
JP4451733B2 (ja) 2004-06-30 2010-04-14 富士通マイクロエレクトロニクス株式会社 半導体装置
DE602005019448D1 (de) * 2004-10-28 2010-04-01 Ip Flex Inc Datenverarbeitungsgerät mit rekonfigurierbarer logischer schaltung
CN100346292C (zh) * 2005-12-02 2007-10-31 浙江大学 多地址空间异步计算等待响应指令的控制方法
JP4795025B2 (ja) * 2006-01-13 2011-10-19 キヤノン株式会社 ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7617383B2 (en) * 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7904615B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
WO2007102218A1 (ja) * 2006-03-09 2007-09-13 Fujitsu Limited リコンフィギャラブル回路
US7555637B2 (en) * 2007-04-27 2009-06-30 Vns Portfolio Llc Multi-port read/write operations based on register bits set for indicating select ports and transfer directions
CN101689108A (zh) * 2007-05-17 2010-03-31 富士通株式会社 运算单元、处理器和处理器体系结构
US7752592B2 (en) * 2007-10-10 2010-07-06 International Business Machines Corporation Scheduler design to optimize system performance using configurable acceleration engines
US20100023730A1 (en) * 2008-07-24 2010-01-28 Vns Portfolio Llc Circular Register Arrays of a Computer
US9015026B2 (en) * 2009-06-12 2015-04-21 Cadence Design Systems, Inc. System and method incorporating an arithmetic logic unit for emulation
JP5718558B2 (ja) * 2009-09-16 2015-05-13 富士ゼロックス株式会社 画像データ処理装置
TWI563479B (en) * 2009-12-30 2016-12-21 Tatung Co Field emission display
JP5617282B2 (ja) * 2010-03-09 2014-11-05 富士通セミコンダクター株式会社 データ処理システム
JP5580404B2 (ja) * 2010-03-29 2014-08-27 株式会社東芝 半導体装置
GB2483903A (en) * 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Instruction which specifies the type of the next instruction to be executed
US9412022B2 (en) * 2012-09-06 2016-08-09 Leonard Flom Iris identification system and method
US9880842B2 (en) * 2013-03-15 2018-01-30 Intel Corporation Using control flow data structures to direct and track instruction execution
JP6321325B2 (ja) 2013-04-03 2018-05-09 ルネサスエレクトロニクス株式会社 情報処理装置および情報処理方法
US20170083313A1 (en) * 2015-09-22 2017-03-23 Qualcomm Incorporated CONFIGURING COARSE-GRAINED RECONFIGURABLE ARRAYS (CGRAs) FOR DATAFLOW INSTRUCTION BLOCK EXECUTION IN BLOCK-BASED DATAFLOW INSTRUCTION SET ARCHITECTURES (ISAs)
KR102276718B1 (ko) * 2015-11-25 2021-07-13 삼성전자주식회사 Vliw 인터페이스 장치 및 제어 방법
DE102017208818A1 (de) * 2017-05-24 2018-11-29 Wago Verwaltungsgesellschaft Mbh Initialisierung von Datenbusteilnehmern
RU182446U1 (ru) * 2018-03-13 2018-08-17 Федеральное государственное бюджетное образовательное учреждение высшего образования "Казанский государственный энергетический университет" Усовершенствованное устройство проверки однородности нескольких однотипных выборок
CN110209629B (zh) * 2019-07-15 2023-12-15 北京一流科技有限公司 协处理器的数据处理路径中的数据流动加速装置及其方法
CN113760364B (zh) * 2020-06-03 2022-06-17 广东高云半导体科技股份有限公司 逻辑器件的控制器

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5626062B2 (ru) 1973-12-12 1981-06-16
JPS61294548A (ja) 1985-06-21 1986-12-25 Toshiba Corp 機械命令実行装置
US5038386A (en) 1986-08-29 1991-08-06 International Business Machines Corporation Polymorphic mesh network image processing system
JPS6482131A (en) * 1987-09-24 1989-03-28 Mitsubishi Electric Corp Data processor
JPH01156824A (ja) 1987-12-14 1989-06-20 Hitachi Ltd マイクロプロセッサ
JPH02183332A (ja) 1989-01-10 1990-07-17 Fujitsu Ltd プログラムド制御方式
GB9123271D0 (en) 1991-11-02 1991-12-18 Int Computers Ltd Data processing system
US5452455A (en) * 1992-06-15 1995-09-19 International Business Machines Corporation Asynchronous command support for shared channels for a computer complex having multiple operating systems
JP3684579B2 (ja) 1993-04-27 2005-08-17 富士通株式会社 分散型並列計算機のプロセッサエレメント
US5535406A (en) * 1993-12-29 1996-07-09 Kolchinsky; Alexander Virtual processor module including a reconfigurable programmable matrix
US5551570B1 (en) 1994-02-02 1999-10-05 Tartan Paper Products Decorative packaging system including a method and kit therefor
JPH07253882A (ja) 1994-03-15 1995-10-03 Hitachi Ltd 命令制御装置
JPH07319692A (ja) 1994-05-25 1995-12-08 Fuji Electric Co Ltd プログラマブルコントローラ
US5617431A (en) * 1994-08-02 1997-04-01 Advanced Micro Devices, Inc. Method and apparatus to reuse existing test patterns to test a single integrated circuit containing previously existing cores
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
US6052773A (en) 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5742180A (en) 1995-02-10 1998-04-21 Massachusetts Institute Of Technology Dynamically programmable gate array with multiple contexts
JP2987308B2 (ja) * 1995-04-28 1999-12-06 松下電器産業株式会社 情報処理装置
US5826072A (en) * 1995-11-13 1998-10-20 Oasis Design, Inc. Pipelined digital signal processor and signal processing system employing same
US5956518A (en) 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
US5771362A (en) * 1996-05-17 1998-06-23 Advanced Micro Devices, Inc. Processor having a bus interconnect which is dynamically reconfigurable in response to an instruction field
US6023564A (en) * 1996-07-19 2000-02-08 Xilinx, Inc. Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions
US5805875A (en) * 1996-09-13 1998-09-08 International Computer Science Institute Vector processing system with multi-operation, run-time configurable pipelines
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
JPH10260832A (ja) 1997-03-18 1998-09-29 Hitachi Ltd 情報処理装置
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
US5970254A (en) * 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing
US5966534A (en) 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
JP3414209B2 (ja) 1997-07-30 2003-06-09 松下電器産業株式会社 プロセッサ
JP3449186B2 (ja) * 1997-08-19 2003-09-22 富士通株式会社 パイプラインバイパス機能を有するデータ処理装置
US6282627B1 (en) * 1998-06-29 2001-08-28 Chameleon Systems, Inc. Integrated processor and programmable data path chip for reconfigurable computing
US6647511B1 (en) * 1998-09-17 2003-11-11 Texas Instruments Incorporated Reconfigurable datapath for processor debug functions
JP2000207202A (ja) 1998-10-29 2000-07-28 Pacific Design Kk 制御装置およびデ―タ処理装置
US6181163B1 (en) * 1999-01-21 2001-01-30 Vantis Corporation FPGA integrated circuit having embedded SRAM memory blocks and interconnect channel for broadcasting address and control signals
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6904514B1 (en) * 1999-08-30 2005-06-07 Ipflex Inc. Data processor

Also Published As

Publication number Publication date
EP1134654A4 (en) 2006-08-23
CA2348261C (en) 2006-02-14
DE60044300D1 (de) 2010-06-10
US20050240757A1 (en) 2005-10-27
EP1215569B1 (en) 2010-04-28
WO2001016717A8 (fr) 2001-04-12
EP1134654A1 (en) 2001-09-19
IL142675A (en) 2006-07-05
NZ516679A (en) 2004-03-26
NZ516680A (en) 2004-01-30
US20050038550A1 (en) 2005-02-17
CN1145879C (zh) 2004-04-14
TW504608B (en) 2002-10-01
CN1321270A (zh) 2001-11-07
CA2348261A1 (en) 2001-03-08
KR20010080366A (ko) 2001-08-22
AU6864400A (en) 2001-03-26
AU782238B2 (en) 2005-07-14
KR100491593B1 (ko) 2005-05-27
KR100497078B1 (ko) 2005-06-27
EP1215569A1 (en) 2002-06-19
IL142676A0 (en) 2002-03-10
JP4234925B2 (ja) 2009-03-04
CN1321271A (zh) 2001-11-07
WO2001016717A1 (fr) 2001-03-08
WO2001016710A1 (fr) 2001-03-08
KR20010080367A (ko) 2001-08-22
JP3842129B2 (ja) 2006-11-08
BR0013594A (pt) 2002-07-16
AU6864200A (en) 2001-03-26
BR0013595A (pt) 2002-07-16
IL142676A (en) 2006-08-20
CN1148647C (zh) 2004-05-05
AU6864300A (en) 2001-03-26
EP1215569A4 (en) 2006-08-23
EA004196B1 (ru) 2004-02-26
CA2348259A1 (en) 2001-03-08
CN1301459C (zh) 2007-02-21
ATE466330T1 (de) 2010-05-15
EA200200309A1 (ru) 2002-08-29
AU776972B2 (en) 2004-09-30
TW495711B (en) 2002-07-21
US6826674B1 (en) 2004-11-30
HK1047326A1 (zh) 2003-02-14
WO2001016711A1 (fr) 2001-03-08
CN1532692A (zh) 2004-09-29
IL142675A0 (en) 2002-03-10
EA200200310A1 (ru) 2002-10-31
US6904514B1 (en) 2005-06-07

Similar Documents

Publication Publication Date Title
EA004071B1 (ru) Управляющий программный продукт и система обработки данных
Rau et al. Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing
JP3559046B2 (ja) データ処理マネージメントシステム
US4562538A (en) Microprocessor having decision pointer to process restore position
US5889947A (en) Apparatus and method for executing instructions that select a storage location for output values in response to an operation count
KR20010080469A (ko) 작업-병렬 프로세서
EP1760580B1 (en) Processing operation information transfer control system and method
US20040199745A1 (en) Processing cells for use in computing systems
EP1502182B1 (en) Automatic task distribution in scalable processors
US20230195526A1 (en) Graph computing apparatus, processing method, and related device
KR20070114690A (ko) 프로세서
JP2001249807A (ja) データ処理装置
CN113110879B (zh) 指令处理方法及装置
US20020129229A1 (en) Microinstruction sequencer stack
WO2007039837A2 (en) Implied instruction set computing (iisc) / dual instruction set computing (disc) / single instruction set computing (sisc) / recurring multiple instruction set computing (rmisc) based computing machine / apparatus / processor
JPH0744401A (ja) 論理集積回路およびそのデータ処理システム
JP4560705B2 (ja) データ処理装置の制御方法
JP2004102988A (ja) データ処理装置
JPH02105936A (ja) データ処理装置
JPH08161168A (ja) データ処理装置

Legal Events

Date Code Title Description
MM4A Lapse of a eurasian patent due to non-payment of renewal fees within the time limit in the following designated state(s)

Designated state(s): AM AZ BY KZ KG MD TJ TM

MM4A Lapse of a eurasian patent due to non-payment of renewal fees within the time limit in the following designated state(s)

Designated state(s): RU