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

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

Info

Publication number
EA004196B1
EA004196B1 EA200200310A EA200200310A EA004196B1 EA 004196 B1 EA004196 B1 EA 004196B1 EA 200200310 A EA200200310 A EA 200200310A EA 200200310 A EA200200310 A EA 200200310A EA 004196 B1 EA004196 B1 EA 004196B1
Authority
EA
Eurasian Patent Office
Prior art keywords
data
processing
execution
field
data processing
Prior art date
Application number
EA200200310A
Other languages
English (en)
Other versions
EA200200310A1 (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 EA200200310A1 publication Critical patent/EA200200310A1/ru
Publication of EA004196B1 publication Critical patent/EA004196B1/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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or 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 or 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Eye Examination Apparatus (AREA)
  • Image Processing (AREA)
  • Saccharide Compounds (AREA)
  • Circuits Of Receivers In General (AREA)
  • Communication Control (AREA)
  • Facsimiles In General (AREA)
  • Steering Control In Accordance With Driving Conditions (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Vehicle Body Suspensions (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

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

Description

Настоящее изобретение относится к управляющему программному продукту, описываемому с помощью микрокодов или т.п., и к системе обработки данных, выполненной с возможностью выполнения управляющей программы.
Уровень техники
Процессоры (системы обработки данных или БИС), выполняющие оперативные функции, такие как микропроцессор (МП) или процессор обработки цифровых сигналов, являются известными устройствами для выполнения универсальной обработки и специальной обработки цифровых данных. Архитектурные факторы, которые в значительной мере повысили рабочие характеристики этих процессоров, включают в себя следующие факторы: конвейерная технология обработки, суперконвейеризация, суперскалярная технология, технология процессоров с командами сверхбольшой длины и введение специализированных путей данных (специализированные команды). Эти архитектурные элементы также включают в себя ветвление с прогнозированием, банк регистров, технологию быстродействующей буферной памяти большой ёмкости и т.п.
Производительность в случае применения конвейерной технологии явно отличаются от этих показателей в тех случаях, когда конвейерная технология не применяется. В принципе, при одной и той же команде число конвейерных этапов стабильно повышает производительность. Например, четырёхкаскадный конвейер с большой степенью вероятности обеспечит по меньшей мере 4-кратное увеличение производительности; и 8-каскадный конвейер обеспечит 8кратное повышение производительности, и это означает, что суперконвейерная технология дополнительно повышает производительность в два раза и более. Поскольку развитие в области обработки данных позволяет сегментировать критические маршруты, поэтому верхний предел рабочей частоты будет значительно повышен, и роль конвейеризации возрастёт в ещё большей степени. Однако не устранена задержка или штраф команды ветвления, и успех или неудача суперконвейерной машины зависят от того, в какой степени многокаскадную задержку, соответствующую обращениям к памяти и ветвлениям, можно обработать компилятором за счёт планирования команд.
Суперскалярная технология - это технология одновременного выполнения команд с применением счётчика команд со сложными внутренними путями данных. Эта технология, также поддерживаемая успехами в оптимизации компиляторов, теперь может выполнять от четырёх до восьми команд одновременно. Но во многих случаях сама команда нередко использует только последний результат операции и/или результат в регистре. Помимо предельной производительности это обстоятельство обязательно снизит среднее число команд, которое можно вы полнить одновременно, до некоторого значения, которое намного меньше описываемого выше, даже при полном использовании таких различных методов, как пересылка, переадресация команд, выполнение команд с изменением их очерёдности и переименование регистра. В частности, поскольку невозможно выполнить некоторую совокупность обычных команд ветвления или т.п., поэтому эффект суперскалярной технологии снижается в ещё большей степени. Соответственно, степень повышения производительности процессора в среднем составит величину порядка от 2,0 до 2,5 раз. В случае наличия хорошо совместимой прикладной программы практическая степень повышения рабочих характеристик будет порядка четырёх раз или меньше этого значения.
Следующий этап - технология системы команд сверх большой длины (СКСД). Согласно этой технологии маршруты данных конфигурируют заранее, чтобы обеспечить возможность параллельного выполнения; оптимизацию осуществляют таким образом, что компилятор улучшает параллельное выполнение и формирует соответствующий код команд СКСД. Эта технология применяет очень рациональную идею, согласно которой устраняется необходимость наличия схем для проверки вероятности параллельного выполнения отдельных инструкций - как в суперскалярной технологии. Поэтому эта технология считается очень перспективной в качестве средства реализации аппаратных средств для параллельного выполнения. Но и эта технология не в состоянии выполнять множество обычных команд ветвления. Поэтому практическая степень повышения производительности будет порядка от 3,5 до 5 раз. Помимо этого, в случае процессора для использования при обработке прикладной программы, для которой требуется обработка изображений или специальная обработка данных, СКСД также не является оптимальным решением. Причина этого заключается в том, что в частности, в прикладных программах, для которых нужна непрерывная или последовательная обработка с использованием результатов операции - существует предел выполнения операций или обработки данных с одновременным хранением данных в таком универсальном регистре, как в СКСД. Это та же проблема, что и в обычной конвейерной технологии.
С другой стороны, из прошлого опыта хорошо известно, что различные матричные вычисления, векторные вычисления и т. п. более производительны, если их выполняют в специализированных схемах. Поэтому в наиболее передовой технологии для обеспечения наиболее высокой производительности основанная на СКСД концепция становится основной при применении различных специализированных арифметических схем, построенных сообразно цели прикладных программ.
Но СКСД является технологией повышения эффективности параллельной обработки с помощью счётчика команд. Поэтому СКСД не эффективна, например, в случае выполнения двух и более объектов одновременно, или в случае выполнения двух или более функций. Помимо этого, создание различных специализированных арифметических схем увеличивает объём аппаратуры и также снижает гибкость программного обеспечения. И также по существу трудно избежать задержки при выполнении обычного ветвления.
Поэтому задача данного изобретения заключается в рассмотрении проблем этих обычных технологий с другой точки зрения в целях повышения быстродействия процессора и для обеспечения нового решения. В частности, задача данного изобретения заключается в обеспечении системы, т.е. управляющего программного продукта, выполненного с возможностью повышения производительности аналогично конвейеру, с устранением задержки при выполнении обычного ветвления; системы обработки данных, способной выполнять управляющую программу, и в обеспечении способа управления этой системой. Ещё одна задача данного изобретения заключается в обеспечении управляющего программного продукта, способного гибко выполнять обработку индивидуальных данных, даже если это усложнённая обработка данных, с высокой скоростью, без необходимости применения разнообразных специализированных схем, специфических для соответствующей обработки данных. Также задача данного изобретения заключается в обеспечении системы обработки данных, способной выполнять программы, и способа управления этой системой.
Сущность изобретения
Установлено, что указываемые выше проблемы вызваны ограничением набором команд для обычной не конвейерной технологии, являющейся основой упоминаемых выше технологий. Конкретнее, набор команд (формат команды) программы (микрокоманды, программы на языке ассемблера, машинный язык или т.п.), определяющий обработку данных в процессоре, является мнемокодом, образованным из комбинации операции команды (команды выполнения) и операнда, определяющего среду или интерфейс регистров, используемых для выполнения этой команды. Соответственно, весь аспект обработки, обозначенный набором команд, полностью понятен при рассмотрении обычного набора команд, в противоположность тому, как какой-либо аспект набора команд вовсе нельзя понять до появления и декодирования набора команд. Данное изобретение значительно изменяет структуру самого набора команд, тем самым успешно решая указанные проблемы, которые трудно решаемы в известном уровне техники, и обеспечивая значительное улучшение производительности системы обработки данных.
Согласно данному изобретению первый набор команд, содержащий первое поле для описания (записи) команды выполнения для обозначения содержания операции или обработки данных, которую выполняют по меньшей мере в одном блоке обработки, образующем систему обработки данных; и второе поле для описания (записи) подготовительной информации, чтобы привести блок обработки в состояние готовности выполнить операцию или обработку данных, выполняемую согласно команде выполнения, обеспечивают таким образом, что подготовительную информацию для работы или обработки данных, которая не зависит от содержания команды выполнения, описываемой в первом поле в наборе команд, описывают во втором поле. Таким образом, данное изобретение обеспечивает управляющий программный продукт и устройство управляющей программы, содержащее указанный набор команд. Эту управляющую программу можно обеспечить в записанном или сохраненном виде на соответствующем носителе, считываемом с помощью системы обработки данных, или в виде, встроенном в передающую среду, передаваемую по компьютерной сети или по другому средству связи.
Блок обработки является соответствующим блоком для формирования системы обработки данных и на которую системы обработки данных может быть разделены с точки зрения выполняемых функций или пути данных; указанный блок включает в себя блок управления, арифметический блок; блок обработки данных или блок обработки потока данных, имеющий отчасти компактный путь данных, выполненный с возможностью обработки в виде шаблона или т.п., имеющего специализированный путь данных.
Система обработки данных согласно настоящему изобретению содержит по меньшей мере один блок обработки данных для выполнения операций или обработки данных; блок вызова набора команд, включающего в себя первое поле, описывающее команду выполнения для обозначения содержания операций или обработку данных, которую выполняют в блоке обработки; и второе поле для описания подготовительной информации, чтобы привести блок обработки в состояние готовности выполнить операции или обработку данных, выполняемую согласно команде выполнения; первый блок управления выполнением для декодирования команды выполнения в первом поле и для осуществления операций или обработки данных с помощью блока обработки, который заранее установлен в состояние готовности выполнять операции или обработку данных согласно команде выполнения; и второй блок управления выполнением для декодирования подготови5 тельной информации во втором поле и, независимо от содержания действий первого блока управления выполнением, для приведения блока обработки в состояние готовности выполнять другие операции или обработку данных.
Способ управления системой обработки данных, включающий в себя по меньшей мере один блок обработки для выполнения операции или обработки данных согласно настоящему изобретению, согласно которому выбирают набор команд, содержащий указанные первое и второе поле; осуществляют первый этап управления - кодирование команды выполнения в первом поле и выполнение операции или обработки данных с помощью блока обработки, который заранее установлен в состояние готовности выполнить операции или обработку данных согласно команде выполнения; и осуществляют второй этап управления - декодирование, независимо от первого этапа управления, подготовительной информации во втором поле и установление блока обработки в состояние готовности выполнить операции или обработку данных.
Набор команд согласно настоящему изобретению имеет первое поле для описания команды выполнения и второе поле для описания подготовительной информации (подготовительной команды), которая не зависит от команды выполнения и содержит такую информацию, как данные регистра и непосредственно получаемые данные. Соответственно, в арифметической команде операция, такая как ΆΌΌ (суммирование), описывается в первом поле, а команда или информация, определяющая регистры, описывается во втором поле. Очевидно, что это тот же набор команд, что и обычная программа на языке ассемблера, но команда выполнения и подготовительная информация не зависят друг от друга, и поэтому они не соответствуют друг другу в одном и том же наборе команд. Поэтому набор команд имеет такое свойство, что обработку, подлежащую выполнению блоком обработки системы обработки данных, таким как блок управления, невозможно полностью понять или полностью определить по ней самой. Другими словами, набор команд согласно настоящему изобретению существенно отличается от условного мнемокода. Согласно настоящему изобретению операция в соответствии с командой и её соответствующий операнд, которые обычно описывают в одном, или в одном и том же наборе команд, могут быть определены отдельно и независимо, в результате чего обработка, которую нельзя реализовать обычным набором команд, становится легко осуществимой.
Подготовительную информацию для команды выполнения, описываемой в первом поле последующего набора команд, можно описать во втором поле. Это становится возможным для подготовки к выполнению команды выполнения до появления набора команд, содержащего команду выполнения. Другими словами, возможно привести блок обработки в такое состояние, которое подготовлено для выполнения операции или обработки данных, которую выполняют согласно команде выполнения до этой команды выполнения. Например, возможно описать команду для функционирования по меньшей мере одного арифметико-логического устройства, включенного в блок управления системы обработки данных, в первом поле определённого набора команд (формат команды или запись команды). Возможно описать команду или информацию для определения интерфейсов арифметико-логического блока, такого как исходный регистр или регистр назначения для указанной операции по меньшей мере в этом одном арифметико-логическом блоке во втором поле предыдущего набора команд. Поэтому перед выборкой команды выполнения декодируют регистровую информацию арифметико-логического блока и устанавливают регистры. Затем логическую операцию выполняют согласно последующей выбранной команде выполнения, и её результат запоминают в назначенном регистре. Также возможно описать регистр назначения в первом поле вместе с командой выполнения.
Соответственно, с помощью набора команд согласно данному изобретению обработку данных можно осуществлять многоэтапно как в конвейерной обработке, и при этом повышается производительность. В частности, команда ΆΌΌ, В0, К1, #1234Н означает, что регистр К1 и данные #1234Н суммируют и результат запоминают в регистре К0. Но с точки зрения архитектуры аппаратных средств, для высокоскоростной обработки целесообразно выполнять процесс считывания из регистра КО и данных #1234Н во входные регистры маршрута данных, к которому принадлежит арифметический сумматор ΆΌΌ, т.е. арифметико-логический блок, налагаясь на цикл выполнения предыдущего набора команд, который на один такт опережает цикл выполнения команды выполнения ΆΌΌ. В этом случае производят чисто арифметическое суммирование, и улучшаются характеристики управления выборкой (характеристики частоты выполнения). В обычной конвейерной обработке эта проблема также в некоторой степени решается увеличением конвейерных каскадов с тем, чтобы один каскад полностью предназначить для цикла считывания из регистрового файла (набора данных). Но в обычной конвейерной обработке указанный способ обязательно увеличивает задержку выходного сигнала. В противоположность этому, данное изобретение в состоянии решить эту проблему без увеличения задержки.
В наборе команд согласно настоящему изобретению возможно описать подготовительную информацию до команды выполнения. Поэтому в команде ветвления, в такой как обычная команда ветвления, информацию назначения
Ί ветвления предоставляют блоку управления до команды выполнения. Именно, в обычном мнемокоде можно понять всё значение набора команд с одного взгляда, но о нём нельзя узнать до тех пор, пока он не появится. Напротив, в наборе команд согласно данному изобретению всё значение набора команд нельзя понять с одного взгляда, но информацию о команде выполнения обеспечивают до появления команды выполнения. Поэтому, поскольку назначение ветвления определяют до команды выполнения, поэтому также возможно осуществить выборку набора команд при назначении ветвления, и также подготовить команду выполнения при назначении ветвления заранее.
Как правило, большинство центральных процессоров/процессоров обработки цифрового сигнала успешно повысили скорость обработки за счёт смещения конвейерной обработки к более позднему каскаду (позднее на временной оси). Но при выполнении ветвления и вызова/возвращения программы возникли проблемы. В частности, поскольку информация адреса выборки заранее не обеспечивается, поэтому указанные проблемы вызывают существенные потери, которые в принципе невозможно устранить. Разумеется, технология прогнозирования ветвления, задерживаемого ветвления, быстродействующего буфера ветвления или быстродействующая цикловой обработки, применяемая в процессорах обработки цифрового сигнала, значительно снизила эти потери. Но проблемы снова появляются, когда возникает несколько следующих друг за другом ветвлений, и поэтому хорошо известно, что эти технологии не обеспечивают существенного решения указанной проблемы.
Помимо этого, в известном уровне техники регистровую информацию, требуемую для последующей команды, заранее получить невозможно. Это повышает сложность обработки с пересылкой или обработки с обходом, применяемых с целью повышения скорости конвейерной обработки. Поэтому повышение скорости обработки согласно известному уровню техники вызывает значительное повышение стоимости аппаратуры.
Как упоминалось выше, в обычном наборе команд адресную информацию о назначении ветвления получают только после декодирования набора команд, в результате чего трудно устранить потери, возникающие при выполнении обычного ветвления. В противоположность этому: в наборе команд согласно настоящему изобретению - поскольку информацию о назначении ветвления получают заранее, то потери, возникающие при выполнении обычного ветвления, устраняют. При этом, если аппаратура располагает достаточными ресурсами или масштабируемостью, то также возможно выбрать команду подготовки при назначении ветвления, чтобы подготовиться для последующей команды выполнения после ветвления. Если условие ветвления не выполняется, то утрачивается только подготовка, и при этом потери времени исполнения не происходит.
Кроме того, поскольку информация о регистре, требуемая для последующей команды, известна одновременно с командой выполнения, или до неё, то скорость обработки можно увеличить без повышения затрат на аппаратуру. В соответствии с настоящим изобретением часть этапа обработки, обычно проводимую в аппаратуре в обычной конвейерной обработке, успешно выполняют с помощью программного обеспечения заранее на этапе компилирования или ассемблирования.
В системе обработки данных согласно настоящему изобретению второй блок управления выполнением для обработки на основе подготовительной информации может быть блоком, выполненным с возможностью динамического управления изменяемой архитектурой с помощью соединения между транзисторами, например - базовый матричный кристалл (БМК). Но для динамического изменения аппаратуры, подобно БМК, требуется много времени, и требуется дополнительная аппаратура, чтобы уменьшить это время, затрачиваемое на реконфигурацию. Также имеется возможность запоминать информацию о реконфигурации БМК в ЗУПВ (запоминающее устройство с произвольной выборкой), имеющем две стороны, или более; и реконфигурацию выполняют в фоновом режиме, чтобы динамически изменить архитектуру в течение по существу короткого времени. Но для того, чтобы реконфигурацию можно было провести в течение нескольких тактовых импульсов, необходимо установить ЗУПВ и запоминать все возможные комбинации информации реконфигурации. Это не обязательно решает экономическую проблему длительного времени реконфигурации БМК. Помимо этого, первоначальная проблема БМК пока вряд ли будет решена по причине архитектуры БМК для обеспечения эффективного размещения информации на основе вентильной структуры, и по причине низких характеристик управления выборкой БМК на практическом уровне.
В противоположность этому, согласно настоящему изобретению интерфейс ввода и/или вывода блока обработки отдельно определяют как подготовительную информацию независимо от времени выполнения тактирования выполнения, блока обработки. Таким образом, во втором блоке выполнения или на втором этапе управления интерфейс ввода и/или вывода блока управления может быть отдельно установлен независимо от тактирования выполнения, осуществляемом в блоке обработки. Соответственно, в системе обработки данных, имеющей множество блоков обработки, с помощью второго блока управления выполнением или с помощью второго этапа управления комбинирова9 нием маршрутов данных этими блоками обработки можно управлять независимо от выполнения. Поэтому команда, определяющая интерфейс по меньшей мере одного блока обработки, такого как арифметико-логическое устройство в системе обработки данных, записанная или описываемая во втором поле, становится назначением потока данных. Это обстоятельство позволяет увеличить независимость маршрута данных. В результате этого назначение потока данных выполняют во время выполнения другой программы команд. Также обеспечивают архитектуру, согласно которой внутренний маршрут данных блока управления или системы обработки данных в состоянии ожидания можно предоставить для более срочного выполняемого в данный момент процесса в другом внешнем блоке управления или системе обработки данных. Помимо этого, в подготовительную информацию включают информацию, также определяющую содержимое обработки и/или конфигурации схемы. Поэтому второй блок управления выполнением или второй этап управления обозначают содержимое обработки (конфигурацию схемы) блока обработки. Поэтому маршрут данных можно сконфигурировать более гибко.
При этом второй блок управления выполнением или второй этап управления имеет функцию планировщика для управления комбинацией маршрутов данных, например функцию определения интерфейса арифметико-логического блока для декодирования регистровой информации выборки, и интерфейса другого блока обработки в целях ведения различных видов обработки данных. Например, в случае, когда процесс матричного вычисления выполняют в течение фиксированного времени, а процесс фильтрации выполняют затем; соединение между блоками обработки в системе обработки данных для этих процессов обеспечивают перед каждым процессом; и каждый процесс выполняют последовательно с помощью счётчика времени. Замена счётчика времени на другую схему сравнения или на внешний детектор событий обеспечивает более сложное и гибкое планирование.
Архитектуру БМК можно использовать в отдельных блоках обработки. Но динамическое изменение аппаратуры занимает много времени, и для сокращения этого времени требуется дополнительная аппаратура. Это затрудняет динамическое управление аппаратурой в блоке обработки во время выполнения прикладной программы. Если некоторую совокупность ЗУПВ обеспечивают банковой структурой для мгновенной коммутации, то для коммутации длительностью порядка от нескольких до нескольких десятков тактовых импульсов потребуется значительное число банковых структур. Поэтому принципиально необходимо сделать каждый макроэлемент в БМК независимо программируемым и детектируемым по времени для изме нения в качестве программируемой машины управления. Но современные БМК невозможно применить для этой структуры. Чтобы БМК можно было бы применять для этой структуры, для динамического управления временем выполнения требуется новая архитектура управления командами согласно настоящему изобретению.
Соответственно, в настоящем изобретении желательно применять, в качестве блока обработки, управляющую схему, имеющую специализированный внутренний маршрут данных. С помощью блоков обработки с отчасти компактными маршрутами данных, выполненными в виде шаблонов, или с комбинацией маршрутов данных в виде шаблонов, назначают и выполняют поточную обработку данных. Помимо этого, часть внутреннего маршрута данных блока обработки можно выбирать в соответствии с подготовительной информацией или подготовительной командой, при этом содержимое обработки в блоке обработки становится изменяемым. В результате, аппаратуру можно более гибким образом реконфигурировать за короткое время.
Блок обработки, имеющий соответствующий логический вентиль, или вентили, и внутренние маршруты данных, соединяющие логический вентиль или вентили с интерфейсами ввода/вывода, далее именуется «шаблоном», поскольку предусмотренный в блоке обработки специализированный маршрут данных используют в качестве шаблона. То есть, в блоке обработки обеспечивают возможность изменять процесс блока обработки за счёт изменения порядка данных, вводимых/выводимых в логические вентили, или за счёт изменения или выбора соединения между логическими вентилями. Необходимо только выбрать некоторую часть внутреннего маршрута данных, подготовленную заранее. Поэтому обработку можно изменять в течение более короткого времени по сравнению с БМК, для которого требуется изменение в схемах на транзисторном уровне. Помимо этого, применение заранее подготовленного внутреннего маршрута данных для определённой цели уменьшает число избыточных схемных элементов и повышает эффективность использования площади транзисторов.
Соответственно, плотность монтажа повышается, в результате чего повышается экономичность производства. При этом, реализация маршрута данных применительно к высокоскоростной обработке даёт хорошие характеристики управления выборкой. Поэтому в соответствии с настоящим изобретением желательно, чтобы во втором блоке управления выполнением и на втором этапе управления, по меньшей мере, часть внутреннего маршрута данных блока обработки можно было бы выбирать в соответствии с подготовительной информацией.
Также желательно, чтобы второй блок управления выполнением имел функцию планировщика для управления интерфейсом блока обработки, чтобы управлять планированием, сохраняющим интерфейс каждого блока обработки, установленного на основе подготовительной информации.
Также желательно, чтобы интерфейсы ввода и/или вывода в средстве обработки, сформированном из некоторого множества блоков обработки, были назначены в соответствии с подготовительной информацией. Поскольку интерфейсы множества блоков обработки изменяют одной командой, то маршруты данных, относящиеся к множеству блоков обработки, изменяют одной командой. Соответственно, желательно, чтобы во втором блоке управления выполнением или на втором этапе интерфейсы ввода и/или вывода блоков обработки изменялись в блоке средства обработки согласно подготовительной информации.
Также желательно обеспечить запоминающее устройство, хранящее множество данных конфигурации, определяющих интерфейсы ввода и/или вывода в средстве обработки, и обеспечить интерфейсам ввода и/или вывода в средстве обработки возможность изменяться путём выбора одних данных из множества данных конфигурации, сохраненных в запоминающем устройстве, согласно подготовительной информации. Если данные конфигурации назначены командой, определяющей поток данных, то изменением интерфейсов множества блоков обработки управляют из программы, не используя избыточную команду.
Кроме того, система обработки данных, имеющая первый блок управления для выполнения универсальной обработки, например арифметико-логический блок, в качестве блока обработки, и второй блок управления для выполнения специализированной обработки, например, множество блоков обработки потока данных, имеющих специализированный внутренний маршрут данных, становится системной БИС, подходящей для обработки, для которой быстродействие и работа в реальном времени подобны сетевой обработке или обработке изображений. В наборе команд согласно настоящему изобретению команду выполнения для работы арифметико-логического устройства описывают в первом поле, и подготовительную информацию, определяющую интерфейс арифметико-логического устройства и/или блоков обработки потока данных, описывают во втором поле. Поэтому с помощью набора команд согласно настоящему изобретению, обеспечивают программный продукт, выполненный с возможностью управления указанной системной БИС.
Обычно один из способов осуществления усложнённой обработки данных заключается в обеспечении специализированных схем и в выполнении специализированной команды для использования этих схем, в результате чего возрастают затраты на аппаратуру. В противоположность этому, в наборе команд согласно настоящему изобретению интерфейс арифметикологического устройства и содержимое выполняемой обработки описывают во втором поле независимо от команды выполнения, тем самым обеспечивая возможность включения команд управления конвейеризацией и/или маршрутами данных в указанный набор команд. Соответственно, настоящее изобретение обеспечивает средство, которое эффективно при выполнении параллельной обработки посредством счётчика команд, и также при псевдоодновременной обработке двух или более объектов и псевдоодновременной обработке двух, или более функций. Другими словами, обработка данных и/или алгоритм с разными контекстами не выполняют одновременно в обычной команде, поскольку она требуется для одновременной обработки согласно «удалённым» счётчикам команд, указывающим друг другу удалённые точки (в программе). В противоположность этому, за счёт должного определения потоков данных с помощью наборов команд согласно настоящему изобретению эти процессы выполняют независимо от счётчиков команд.
Соответственно, с помощью наборов команд согласно настоящему изобретению, когда маршруты данных являются эффективными при улучшении характеристик параллельной обработки заранее со стороны прикладной программы, эти маршруты данных конфигурируют или формируют заранее, используя второе поле с помощью средств программного обеспечения. Затем созданные маршруты данных (потоки данных) приводят в действие или выполняют с помощью командного уровня согласно средствам программного обеспечения. Маршруты данных применяют не только для обработки данных, соответствующей некоторым конкретным целям, но также и для приведения в действие конечных автоматов, и поэтому применение маршрутов данных очень свободное.
При этом информация во втором поле обеспечивает возможность удобного заблаговременного формирования подготовительного цикла для последующей команды. Обычно операция должна осуществляться с помощью регистров. Но буферизация с помощью подготовительного цикла делает возможным использование запоминающих устройств (с одним портом/двойным портом) или регистровых файлов вместо регистра. Во втором поле набора команд можно указать команды, обозначающие ввод/вывод между регистрами или буферами и запоминающими устройствами, имеющимися в блоке обработки. Поэтому когда вводом/выводом между регистрами, или между буфером и запоминающими устройствами управляют во втором блоке управления выполнением или на втором этапе управления, то ввод/вывод в/из запоминающих устройств выполняют независимо от команды выполнения.
Это повышает соответствие между отдельными последовательностями команд и позволяет избежать состязания за обладание аппаратурными ресурсами до выполнения, тем самым делая возможным быстрое соответствие требованиям параллельного одновременного выполнения множества команд и/или требованиям внешнего прерывания. Помимо этого, поскольку запоминающее устройство можно в основном считать регистром, поэтому возможно осуществление быстрого переключения задач. Также возможно применение быстродействующего буфера предзагрузочного типа вместо кэш-памяти, которая не в состоянии устранять обычные потери, связанные с первой выборкой. Поэтому можно также осуществить быстродействующую встроенную систему, не имеющую потерь производительности, и тем самым обеспечить 100-процентный коэффициент нахождения данных в памяти.
Другими словами, если рассматривать запоминающее устройство как регистр, то можно на высокой скорости обрабатывать множество запросов на асинхронную обработку например, для прерываний, в результате чего обеспечивается возможность очень гибким образом осуществлять усложнённую обработку данных и непрерывную обработку данных. Причём, поскольку для запоминания и извлечения данных из регистра не требуется много времени, поэтому очень облегчается переключение задач на высокой скорости. Поскольку полностью устраняется разница скорости доступа между внешними запоминающими устройствами и внутренними запоминающими устройствами, поэтому обеспечивается эффективное решение проблемы потерь производительности для первой выборки в кэш-памяти. Соответственно, обеспечивается возможность высокоскоростной обработки вызова/возврата и прерывания/возврата. Поэтому можно исключить условия реагирования на конфигурированное событие и исключить снижение производительности обработки данных из-за этого события.
Кроме того, в первом или во втором полях возможно описать множество команд выполнения или команд подготовки подобно командам сверхбольшой длины и обеспечивается возможность того, чтобы первый или второй блоки управления выполнением содержали множество узлов управления выполнением для независимой обработки множества независимых команд выполнения или команд подготовки, которые описаны в первом или во втором полях, соответственно. Тем самым обеспечивается возможность увеличения производительности.
За счёт осуществления системы обработки данных, которая применяет блок управления в соответствии с настоящим изобретением в качестве базового компонента или периферийной схемы, обеспечивается возможность создания более экономичной системы обработки данных, имеющей описываемые выше преимущества и высокую скорость обработки.
Перечень фигур чертежей
Фиг. 1 - набор команд согласно данному изобретению;
фиг. 2 более подробно иллюстрирует Уполе изображаемого на фиг. 1 набора команд;
фиг. 3 - пример применения изображаемого на фиг. 1 набора команд;
фиг. 4 иллюстрирует, как запоминают данные в регистре с помощью изображаемого на фиг. 3 набора команд;
фиг. 5 иллюстрирует систему обработки данных для выполнения набора команд согласно данному изобретению;
фиг. 6 изображает программу, выполняемую обычным центральным процессором или процессором обработки цифрового сигнала;
фиг. 7 изображает программу системы обработки данных согласно данному изобретению;
фиг. 8 иллюстрирует компилированную программу, изображенную на фиг. 7, с использованием наборов команд согласно данному изобретению;
фиг. 9 изображает ещё одну программу системы обработки данных согласно данному изобретению;
фиг. 10 иллюстрирует потоки данных, конфигурированные с помощью изображаемой на фиг. 9 программы;
фиг. 11 иллюстрирует ещё одну систему обработки данных для выполнения обработки данных с помощью наборов команд согласно данному изобретению;
фиг. 12 иллюстрирует, как разные специализированные схемы формируют с помощью разных комбинаций шаблонов;
фиг. 13 иллюстрирует шаблоны.
Описание предпочтительного варианта осуществления изобретения
Ниже настоящее изобретение излагается более подробно со ссылками на чертежи. Фиг. 1 изображает структуру или формат набора команд (формат команды) согласно настоящему изобретению. Набор команд (набор команд ΌΆΡ/ΌΝΆ) 10 в настоящем изобретении содержит два поля: первое поле, называемое «основным полем выполнения команды» (Х-поле) 11, и второе поле, называемое «полем цикла подготовки выполнения команды» (дополнительное поле или У-поле) 12, которое в состоянии повысить эффективность выполнения последующей команды. Основное поле выполнения команды (Х-поле) 11 определяет такие операции с данными, как суммирование/вычитание, операции ИЛИ, И и сравнение, и также содержимое различных других видов обработки данных, таких как ветвление, и обозначает местоположение (адрес назначения), где должен быть запомнен результат операции. Для повышения эффективности использования длины команды Х-поле 11 содержит только информацию команд для выполнения. С другой стороны, дополнительное поле (У-поле) 12 способно описывать команду(ы) (информацию), независимо от команды выполнения в Х-поле 11 того же набора команд, и например, оно предназначено для информации для выполнения подготовительного цикла последующей команды.
Набор 10 команд ниже описывается более подробно. Х-поле 11 имеет поле 15 команды выполнения, описывающее операцию команды или команду выполнения (идентификатор выполнения) для такого блока обработки, как арифметикологическое устройство, поле (поле типа) 16, указывающее действительное/недействительное Уполе 12 и тип подготовительной команды (подготовительная информация), указываемый в У-поле 12; и поле 17, указывающее регистр назначения. Как указывалось выше, описание поля 16 типа относится к У-полю 12 и может быть определено независимо от описаний других полей в Х-поле 11.
В У-поле 12 описывают подготовительную информацию, определяемую полем 16 типа. Подготовительная информация, описываемая в У-поле 12, является информацией для выполнения операции или другой обработки данных, готовой для выполнения. Некоторые её конкретные примеры представлены на фиг. 2. Первое, снова отмечается, что поле 16 типа в Хполе 11 предназначается для описания информации независимо от информации в поле 15 команды выполнения. В У-поле 12 можно описать поле 26 адресной информации, которое описывает идентификатор адреса (ΑΙΌ) 21 и адресную информацию 22, предназначаемое применение которой определяют с помощью ΑΙΌ 21, например, адрес (ΑΌΚ8) и адрес ввода/вывода (ΑΌΚ8.ΕΚΟΜ/ΤΟ). Эту адресную информацию, описываемую в У-поле 12, используют для считывания и записи между регистрами или буферами и запоминающими устройствами (включая регистровые файлы); и поблочную передачу, например прямой доступ к памяти, обеспечивают с помощью информации в У-поле. Помимо адреса ввода/вывода (К/У) также возможно описание такой информации, как адрес, указывающий адрес назначения ветвления при выполнении команды ветвления (адрес выборки, Ε), и адрес начала (Ό) при параллельном выполнении в У-поле 12 в качестве адресной информации.
В У-поле также возможно описание информации 23, которая определяет команду регистрового типа, например, определённые непосредственно получаемые данные (1шш) и/или информацию регистров (Кед), служащую в качестве исходных регистров для арифметической операции, или другой команды логической операции (включая МОУЕ, считывание/запись и т.п.). Другими словами, У-поле 12 можно использовать в качестве поля 27, которое определяет источники для последующей команды выполнения.
Помимо этого, в У-поле 12 можно описать информацию 25, которая определяет интерфейсы (исходный адрес, адрес назначения) и содержимое обработки или функцию, и/или их комбинацию для арифметико-логического устройства или другого блока обработки данных, например шаблон, имеющий готовый к использованию маршрут(ы) данных. Другими словами, Уполе 12 используют в качестве поля 28 для описания команд 25 назначения потока данных для определения маршрутов данных реконфигурации, которые должны быть конвейеризированы (потоки данных или маршруты данных) для осуществления специализированной обработки данных. Также возможно описание информации для инициирования или выполнения потока данных и информации для его прекращения в У-поле 12. Соответственно, потоки данных, снабженные реконфигурируемыми потоками данных, определяемые У-полем 12, обеспечивают возможности обработки независимо от счётчика команд для вызова кода из ЗУПВ кодов.
Необходимо отметить, что формат набора команд, изображаемый на фиг. 1 и 2, является только одним из примеров набора команд, имеющего два независимых поля команд согласно настоящему изобретению; и данное изобретение не ограничивается форматом, изображаемым на фиг. 1 и 2. Например, положения некоторых полей в Х- и У-полях не являются ограниченными. Положение независимого поля, например, поля 16 типа, может также находиться в заголовке У-поля 12. Также возможно изменять очередность Х-поля 11 и У-поля 12. В этом примере: поскольку информация У-поля 12 содержится в Х-поле 11, поэтому наличие или отсутствие подготовительной информации в Уполе 12, а также тип подготовительной информации определяют, когда декодируют Х-поле 11 для описания команды выполнения.
В описываемом ниже примере команду выполнения и подготовительную команду описывают в Х-поле 11 и У-поле 12, соответственно. Но с помощью формата команды возможно обеспечить такой набор команд, в котором нет описания какой-либо команды (запись ΝΟΡ) в X или У-полях, и фактически действует только Хполе 11 или У-поле 12. Ещё один набор команд также возможно осуществить с помощью указанного выше формата команд, например, с помощью подготовительной команды, имеющей такие операнды, как регистровая информация, относящаяся к команде выполнения, описываемой в Х-поле 11, т.е. подготовительную команду, которая не является независимой от команды выполнения в Х-поле 11, одновременно описывают в У-поле 12 того же набора 10 команд. Этот набор команд может быть включён смешанно в те же программы с наборами команд данного изобретения, в которых Х-поле 11 и У поле 12 независимы друг от друга и не имеют друг к другу отношения в одном и том же наборе команд. Конкретный пример ниже не приводится для ясности описания изобретения, но описывается программный продукт, имеющий и наборы 10 команд, в которых соответствующее описание в Х-поле 11 и У-поле 12 не зависит друг от друга, и наборы команд, в которых соответствующее описание в Х-поле 11 и У-поле 12 связаны друг с другом; при этом носитель записи, записывающий такую программу, также входит в объем настоящего изобретения.
Фиг. 3 изображает пример набора 10 команд согласно настоящему изобретению. В наборе 10 команд номер .)-1, Т(|-1), поле 16 типа в Х-поле 11 указывает, что 32-разрядные непосредственно получаемые данные описываются в У-поле 12 того же набора команд. #00001234Н записывают как непосредственно получаемые данные в У-поле 12 набора Т(|-1) команд. В последующем наборе команд номер р Т(|). ΜΟνΕ описывают в поле 15 команды выполнения Х-поля, и регистр КЗ указан в поле 17 назначения. Соответственно, при вызове этого набора Т(|) с номером.) арифметико-логическое устройство блока управления запоминает в регистре КЗ непосредственно получаемые данные #00001234Н, определяемые в предыдущем наборе Т(|-1) команд.
Таким образом, в наборе 10 команд данного варианта осуществления изобретения (ниже набор 10 команд номер .) называется набор Т(|) команд) подготовку для команды выполнения, описываемой в наборе Т(|) команд, выполняют с помощью предыдущего набора Т(]-1) команд. Соответственно, вся обработка, подлежащая выполнению с помощью арифметико-логического устройства блока управления, не может быть узнана только из набора Т(|), но однозначно определяется из двух наборов Т (]-1) и Т(|) команд. При этом в поле 15 команды выполнения набора Т(]-1) команд ещё одну команду выполнения для другого процесса, подготовленного с помощью У-поля 12 предыдущего набора команд, описывают независимо от У-поля 12 набора Т (|-1) команд. Кроме того, в поле 16 типа и У-поле 12 набора Т(|) команд описывают ещё одну подготовительную информацию ещё одной команды выполнения, описываемой в поле команды выполнения последующего набора команд.
В данном варианте осуществления подготовительную информацию (подготовительную команду) команды выполнения, описываемой в Х-поле 11 набора Т(]) команд, описывают в Уполе 12 непосредственно предшествовавшего набора Т(]-1) команд. То есть, в этом примере время ожидания подготовительной команды соответствует одному тактовому импульсу. Но подготовительную команду можно описать в другом наборе команд до непосредственно предшествовавшего набора команд. Например, в управляющей программе блока управления, имеющего множество арифметико-логических устройств, или для описываемого ниже управления потоком данных, подготовительную команду не нужно описывать в непосредственно предшествующем наборе команд. При том условии, что состояние (среда или интерфейс) арифметико-логических устройств или конфигурации шаблонов, установленное подготовительными инструкциями, сохраняется или удерживается до тех пор, пока набор команд, имеющий команду выполнения, соответствующую этой подготовительной команде, не будет выбран для выполнения, подготовительную команду можно описать в У-поле 12 набора 10 команд, который выполняют за несколько циклов команд до набора 10 команд, имеющего команду выполнения, соответствующую подготовительной команде.
Фиг. 4 иллюстрирует состояние, когда некоторые данные запоминают согласно изображаемому на фиг. 3 набору команд в регистровом файле или запоминающем устройстве, функционирующем как регистры. Процессор осуществляет выборку набора Т(|-1) команд номер .)-1, и непосредственно получаемые данные #00001234Н фиксируют в исходном регистре ΌΡΟ.Κ арифметико-логического устройства процессора согласно подготовительной команде в его У-поле 12. Затем процессор осуществляет выборку следующего набора Т(|) номер.), и таким образом зафиксированные непосредственно получаемые данные запоминают в буфере 29Ь в цикле выполнения команды ΜΟνΕ в Х-поле 11. Затем эти данные в буфере 29Ь запоминают по адресу, соответствующему регистру К3 запоминающего устройства или регистровому файлу 29а. Даже если адрес назначения запоминания является не регистром, а запоминающим устройством, то набор 10 команд данного варианта осуществления обеспечивает возможность загрузки или запоминания данных в цикле команды выполнения за счёт проведения обработки в соответствии с подготовительной информацией до команды выполнения.
Фиг. 5 схематически изображает структуру процессора (системы обработки данных) 38, имеющего блок 30 управления, выполненный с возможностью выполнения программы, имеющей наборы 10 команд согласно данному варианту реализации. Микрокоды или микропрограммы 18, имеющие наборы 10 команд согласно данному варианту реализации, запоминают в ПЗУ постоянном запоминающем устройстве 39 кодов. Блок 30 управления содержит блок 31 выборки для осуществления выборки набора 10 команд микропрограммы из ПЗУ 39 кодов согласно счётчику команд, когда необходимо; и первый блок 32 управления выполнением, осуществляющий функцию декодирования Х-поля 11 выбранного набора 10 команд, чтобы определить или утвердить функцию арифметикологического устройства, 34 и выбрать регистры
346 в качестве адреса назначения, чтобы зафиксировать в них результат логической операции арифметико-логического устройства 34.
Блок 30 управления также включает в себя второй блок 33 управления выполнением, осуществляющий функцию декодирования У-поля 12 выбранного набора 10 команд на основе информации в поле 16 типа Х-поля 11 и функцию выбора исходных регистров 345 арифметикологического устройства (АЛУ) 34. Этот второй блок 33 управления выполнением выполнен с возможностью интерпретирования команды или информации в У-поле 12 независимо от описания Х-поля 11 - за исключением информации в поле 16 типа. Если информация, описываемая в У-поле 12, определяет потоки данных, то второй блок 33 управления выполнением дополнительно осуществляет функцию выбора или установки исходного адреса и адреса назначения арифметико-логического устройства 34, т.е. определения интерфейса арифметико-логического устройства 34, и также функцию удержания этого состояния до заранее определённого такта или до команды отмены. Кроме того, если информация в У-поле 12 определяет потоки данных, то второй блок 33 управления выполнением также определяет функцию (содержание обработки) арифметико-логического устройства 34 и удерживает это состояние в течение заранее определённого периода.
Соответственно, первый блок 32 управления выполнением осуществляет первый этап управления - декодирование команды выполнения в Х-поле 11 и выполнение операций или другую обработку данных согласно этой команде выполнения с помощью блока обработки, который заранее установлен в состояние готовности выполнить операции или другие виды обработки данных этой команды выполнения. С другой стороны, независимо от содержания выполнения первого блока 32 управления выполнением и выполняемого им первого этапа управления второй блок 33 управления выполнением выполняет второй этап управления декодирования подготовительной информации в У-поле 12 и установки такого состояния блока обработки, в котором он находится в готовности выполнить операцию или другую обработку данных.
Этот блок 30 управления также содержит некоторое множество комбинаций этих блоков 32, 33 управления выполнением и арифметикологических устройств 34, обеспечивая возможность выполнения разных видов обработки. Поэтому с помощью блока 30 управления, используемого в качестве базового компонента или периферийной схемы, возможно сконфигурировать процессор обработки цифровых сигналов для высокоскоростной обработки данных изображения, обычный центральный процессор или блок микропроцессора для высокоскоростной цифровой обработки и т.п.
Фиг. 6-9 изображают некоторые типовые программы, выполняемые блоком 30 управления согласно данному варианту осуществления. Типовая программа 41, изображаемая на фиг. 6, является примером программы, выполняемой с помощью обычного центрального процессора или процессора обработки цифровых сигналов. Эта программа извлекает максимальное значение из таблицы, начиная с адреса #8ТАКТ и заканчивая обнаружением признака завершения #ΕΝΌ, указывающего последние данные.
Программа 42, изображаемая на фиг. 7, соответствует той же процедуре, что и на фиг. 6; эту программу преобразуют так, чтобы она соответствовала блоку 30 управления для выполнения наборов команд согласно настоящему изобретению. Программа 42 сформирована для выполнения двух команд с помощью одного набора команд. Изображаемую на фиг. 7 программу преобразуют с помощью компилятора в программу выполнения наборов команд в соответствии с настоящим изобретением для выполнения блоком 30 управления.
Фиг. 8 изображает компилированную программу 43, имеющую наборы 10 команд в соответствии с данным изобретением. Программный продукт 18, имеющий эти наборы 10 команд, обеспечивают в виде, записанном или запомненном в ПЗУ 39, ЗУПВ или в другом соответствующем носителе записи, считываемом системой обработки данных. Программный продукт 43 или 18, внедренный в передающую среду, по которой можно обмениваться в сетевой среде, можно также распространять. Понятно, что в программах 43 со ссылкой на программу 42 подготовка для команд 15 выполнения второго набора 10 команд осуществляется в У-поле 12 первого набора 10 команд. В первом наборе 10 команд поле 16 типа указывает, что непосредственно получаемые данные описывают в У-поле 12 в качестве подготовительной информации. Второй блок 23 управления выполнением декодирует У-поле 12 и подает непосредственно получаемые данные в исходные запоминающие устройства типа кэш или регистры арифметикологического устройства 34. Затем с помощью второго набора 10 команд команды 15 выполнения выполняют в арифметико-логическом устройстве 34, которое было приведено в готовность для этих команд выполнения. То есть, в то время, когда выполняют набор 10 команд для регистров, определяемых в поле 17 назначения, команды ΜΘΥΕ в поле 15 команды выполнения просто выполняют.
Аналогично, в У-поле 12 второго набора 10 команд команды для установления исходных регистров описывают как подготовительную информацию команд МОУЕ и ΑΌΌ выполнения в поле 15 команды выполнения последующего третьего набора 10 команд. Поле 16 типа указывает, что регистры и непосредственно получаемые данные описывают в У-поле 12.
В программе 43 третий и последующие наборы 10 команд декодируют в указанном выше порядке. Подготовительную информацию для команд 15 выполнения последующего четвёртого набора 10 команд описывают в поле 16 типа и У-поле 12 третьего набора 10 команд. Команды 15 выполнения четвёртого набора 10 команд являются сравнением (СМР) и обычным ветвлением (1СС). Соответственно, с помощью поля 16 типа и У-поля 12 третьего набора 10 команд регистр К1, сравниваемый в последующей команде 15 выполнения, непосредственно получаемые данные #ΕΝΌ (#ЕЕЕЕЕЕЕЕЕ) и адрес назначения при ветвлении #ΝΕΧΤ (#00000500Н) описывают в виде подготовительной информации. Соответственно, при выполнении команд 15 выполнения четвёртого набора 10 команд результат сравнения получают в этом цикле выполнения, поскольку входные данные установлены для арифметико-логического блока 34, который работает как схема сравнения. При этом, адрес перехода установлен для регистра адреса выборки. Поэтому с помощью обычного ветвления команды 15 выполнения другой набор 10 команд по адресу перехода выбирают в этом цикле выполнения, исходя из результата сравнения.
С помощью поля 16 типа и У-поля 12 четвёртого набора 10 команд сравниваемую (К0 и К1) информацию в регистрах и адрес назначения ветвления #ЬООР (#00000496Н) описывают как подготовительную информацию команд 15 выполнения последующего пятого набора 10 команд, т.е. сравнение (СМР) и обычное ветвление (1СС). Соответственно, аналогично четвёртому набору команд, при выполнении пятого набора 10 команд сравнение и обычное ветвление выполняют в этом цикле выполнения, поскольку интерфейс арифметического обрабатывающего блока 34 уже приведён в готовность для выполнения команд СМР и 1СС, описываемых в Χ-поле 11.
В У-поле 12 пятого набора 10 команд информацию (К1) исходного регистра и адрес перехода #ЬООР описывают как подготовительную информацию команд выполнения последующего шестого набора 10 команд, т.е. перемещение (МОУЕ) и ветвление (1МР). Соответственно, когда выполняют шестой набор 10 команд, данные запоминают в регистре КО назначения, и также ещё одну команду выбирают по адресу перехода #ЬООР в этом цикле выполнения.
Таким образом, согласно набору команд настоящего изобретения команду выполнения отделяют от подготовительной команды, которая описывает интерфейсы и/или другую информацию для выполнения команды выполнения субъекта. При этом, подготовительную команду описывают в наборе команд, выборку которого осуществляют до этой команды выполнения. Соответственно, с помощью команд выполнения, описываемых в каждом наборе команд, просто выполняют только соответствующую арифметическую операцию, поскольку данные считывают или назначают для ввода в арифметико-логическое устройство 34. Соответственно, обеспечивают хорошие характеристики управления выборкой и улучшенные характеристики частоты выполнения. При этом, аналогично обычному конвейеру, хотя тактирование операций относительно команды выполнения отличаются от тактирования у обычного конвейера, такие операции, как выборка команды, декодирование регистра и другие виды обработки выполняют поэтапно. Поэтому также повышается производительность.
Помимо этого, программа в соответствии с данным вариантом осуществления выполнена с возможностью описания двух команд в одном наборе команд. Поэтому за счёт параллельного выполнения множества команд посредством счётчика команд, подобно командам сверхбольшой длины, также повышается скорость обработки.
В этой программе 43 ветвление описывают в поле 15 команды выполнения четвёртого набора команд, и адрес назначения ветвления субъекта описывают в У-поле 12 предыдущего третьего набора команд. Соответственно, адрес назначения ветвления устанавливают для регистра выборки во время, или после выполнения четвёртого набора команд. Поэтому при соблюдении условий ветвления команду, установленную по адресу назначения при ветвлении, выбирают и/или выполняют без какой-либо потери производительности. Также возможно заранее выбрать команду по адресу назначения при ветвлении, чтобы можно было заранее осуществить подготовку для выполнения команды выполнения по адресу назначения при ветвлении. Соответственно, даже команда по адресу назначения при ветвлении выполняется без потери даже одного такта. Поэтому обработку точно определяют на «потактовой» основе.
Фиг. 9 иллюстрирует программу 44 согласно данному изобретению, которая определяет потоки данных с помощью У-поля 12 набора 10 команд в соответствии с настоящим изобретением для выполнения той же процедуры, которая описана выше на основе этих потоков данных. Среди команд 25 назначения потока данных, описываемых в программе 44 ΟΡΕΛνΐ. является командой инициирования потока данных, 'ΌΡΕ\νθ - команда, определяющая информацию о соединениях (информация об интерфейсах) и содержание обработки (функцию) блока 34 арифметической обработки, формирующего поток данных (маршрут данных). ΌΡΈνΤ - команда, определяющая условия прекращения потока данных. Команда, определяющая местоположение завершения, ΌΡΈνδ, предназначается для ввода данных в определённый таким образом поток данных и для приве23 дения в действие обработки маршрута данных. Эти команды 25 назначения потока данных описываются в У-поле 12 в качестве подготовительной информации и декодируются с помощью второго блока 33 управления выполнением, так что структуры (конфигурации) для обработки данных устанавливаются блоками 34 обработки.
При выполнении изображаемой на фиг. 9 программы 44 второй блок 33 управления выполнением устанавливает, в качестве второго этапа управления, интерфейсы ввода и/или вывода блока обработки независимо от времени выполнения этого блока обработки, а также определяет содержание выполняемой обработки в блоке обработки согласно спецификации потока данных в программе. При этом второй блок 33 управления выполнением также функционирует в качестве планировщика в целях управления планированием сохранения интерфейса соответствующего блока управления на втором этапе управления.
Соответственно, согласно фиг. 10, второй блок 33 управления выполнением, функционирующий в качестве планировщика 36, определяет соответствующие интерфейсы (ввода/вывода) и содержание или функции обработки трёх блоков 34 арифметической обработки, и сохраняет эти состояния и/или конфигурации, пока не будут соблюдены условия прекращения. Соответственно, с помощью потока данных или маршрута данных, сконфигурированного с помощью этих блоков 34 арифметической обработки, изображаемая на фиг. 6 обработка продолжается последовательно независимо от счётчика команд. Другими словами, за счёт назначения потока данных специализированные схемы для этой обработки обеспечиваются в блоке 30 управления до выполнения, осуществляемого тремя блоками 34 арифметической обработки. Таким образом, обработку получения максимального значения выполняют независимо от управления счётчиком команд. Поток данных прекращают, если арифметико-логическое устройство 34, осуществляющее выполнение как ΏΡΙ.δϋΒ решает, что ΌΡ1.ΚΤ соответствует #ΕΝΏ.
Таким образом, согласно фиг. 9, определение потока данных обеспечивает возможность той же обработки, что и изображаемая на фиг. 6 или 7 программа, без применения какой-либо команды ветвления. Соответственно, хотя блок 30 управления является универсальным, он эффективно осуществляет специализированную обработку, и с очень большой скоростью, аналогично блоку управления, имеющему специализированные схемы для конкретного вида обработки.
Набор команд и блок управления согласно настоящему изобретению предоставляет возможность обеспечения потоков данных и псевдопотоков данных для различных видов обработки в блоке управления. Эти потоки данных можно также применить в качестве шаблонов для выполнения других видов обработки или программ. Это означает, что с помощью средств программного обеспечения - аппаратные средства модифицируют в любое время для получения конфигурации, соответствующей специализированной обработке, при этом эти конфигурации реализуют с помощью других программ или аппаратных средств. Также возможно установить множество потоков данных, и многокомандный поток возможно определить в блоке управления с помощью средств программного обеспечения. Это значительно облегчает параллельное выполнение множества видов обработки, и программирование легко управляет разнообразными видами выполнения обработки.
Фиг. 11 схематически иллюстрирует систему обработки данных в виде системы БИС 50, имеющей множество блоков обработки (шаблонов), выполненных с возможностью определения потока данных с помощью набора 10 команд, включающего в себя Х-поле 11 и У-поле 12 согласно настоящему изобретению. Эта система БИС 50 включает в себя процессорную секцию 51 для осуществления обработки данных, ЗУПВ 52 кодов, хранящее программу 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х осуществляет первый этап управления в соответствии с настоящим изобретением на основе команды выполнения, описываемой в Х-поле 11 набора 10 команд. У-декодер 62у функционирует как второй блок 33 управления выполнением. Соответственно, У-декодер 62у выполняет второй этап управления согласно настоящему изобретению на основе подготовительной информации, описываемой в У-поле 12 набора 10 команд. Поэтому при управлении этой системой обработки данных в блоке 55 выборки выполняют выборку набора команд в соответствии с настоящим изобретением; в Х-декодере 62х выполняют первый этап управления, который заключается в декодировании команды выполнения в первом поле, и выполняют операции или обработку данных этой команды выполнения с помощью блока обработки, который заранее установлен в готовность выполнения операции или обработки данных этой команды выполнения; в У-декодере 62у, независимо от первого этапа управления, выполняют второй этап управления, который заключается в декодировании подготовительной информации во втором поле и приведении блока обработки в состояние готовности выполнить операции или обработку данных.
Универсальное арифметико-логическое устройство 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 модифицируют или реконфигурируют в любое время для обеспечения конфигурации, соответствующей обработке конкретных данных.
Согласно фиг. 12(а), для выполнения некоторой обработки входных данных φίη для получения выходных данных фои! с помощью БОПД 57 этого процессора 51 можно установить соответствующие интерфейсы шаблонов 71 с помощью указателя 25 потока данных, чтобы обработка данных осуществлялась шаблонами 1-1, 1-2 и 1-3, последовательно соединёнными друг с другом согласно фиг. 12(Ь). Аналогично, для других шаблонов 71 в блоке 72 шаблонов можно создать их соответствующие интерфейсы так, чтобы сконфигурировать маршруты данных или потоки данных с помощью соответствующих комбинаций шаблонов 71. Таким образом, множество специализированных блоков обработки или специализированных маршрутов 73 данных, соответствующих обработке входных данных φίη, конфигурируют в любое время в секции 72 шаблонов посредством программы 18.
С другой стороны, если изменяют процесс, выполняемый с входными данными φίη, то возможно изменить соединение между шаблонами 71 с помощью команд 25 назначения потока данных - согласно фиг. 12(с). У-декодер 62у декодирует команды 25 назначения потока данных так, чтобы изменить соответствующие интерфейсы соответствующих шаблонов 71. Этот процесс управления (второй этап управления) У-декодера 62у обеспечивает возможность конфигурирования одного маршрута или множества маршрутов 73 данных, соответствующих выполнению других отличных видов обработки, в секции 72 шаблонов с помощью шаблонов 1-1, 2-η, т-η, соединённых друг с другом последовательно.
При этом, блок обработки, сформированный из одного шаблона 71 или множества шаблонов 71, можно также назначить для осуществ27 ления другой обработки или другой программы, выполняемой параллельно. Если множество процессоров 51 соединены друг с другом с помощью соответствующей шины, то также возможно сконфигурировать последовательность (маршрут данных) 73, имеющую шаблоны 71, скомбинированные для другой обработки данных, которую в основном выполняют другим процессором 51; поэтому возможно очень эффективное использование ресурсов обработки данных, т.е. шаблонов 71.
В противоположность ВМК, предназначаемого для реализации даже таких простых логических вентилей, как «И» и «ИЛИ», шаблон 71 согласно данному изобретению является блоком обработки данных высокого уровня, содержащим некоторый конкретный маршрут данных, в основном выполняющий функцию арифметико-логического устройства или других логических вентилей. Соответствующие интерфейсы шаблонов 71 определяют или переопределяют с помощью команд 25 назначения потока данных, чтобы изменить комбинацию шаблонов 71. Конфигурируют более крупный маршрут данных, соответствующий нужной специфической обработке. В тоже время, содержание обработки или саму обработку, выполняемую в шаблонах 71, можно также определить с помощью команд 25 назначения потока данных за счёт изменения соединения арифметико-логического устройства или других логических вентилей в шаблоне 71. То есть, содержание обработки, выполняемой в шаблонах 71, также определяют и изменяют за счёт выбора части внутреннего маршрута данных в шаблоне 71.
Соответственно, в том случае, когда аппаратные средства БОПД 57, имеющие множество шаблонов 71 с имеющейся конфигурацией в этом примере, переконфигурируют для специфической обработки данных, то необходимости преобразовывать всю микросхему как в БМК или осуществлять преобразование на основе ограниченной совокупности логических блоков не имеется. Вместо этого, путём коммутации маршрутов данных, ранее обеспеченных в шаблонах 71 или в секции 72 шаблонов, или за счёт выбора части маршрутов данных нужные маршруты данных выполняют с помощью арифметико-логических устройств или логических вентилей, подготовленных заранее. Другими словами, в шаблоне 71 соединения логических вентилей только повторно создают или переконфигурируют с минимальными требованиями и даже между шаблонами 71 соединения только повторно создают или переконфигурируют в пределах минимальных требований. Благодаря этому аппаратные средства можно изменить с получением конфигурации, соответствующей специфической обработке данных, в течение очень короткого или ограниченного времени, в течение нескольких тактов.
Поскольку БМК не содержит логических вентилей, поэтому они обладают очень высокой степенью универсальности. Но БМК содержит большое число проводных соединений, которые не нужны для формирования логических схем в целях выполнения функций специфической прикладной программы, и эта избыточность не позволяет сократить длину путей сигнала. БМК занимает большую, чем специализированная интегральная схема (СпИС), соответствующей выполняемой прикладной программе, и также имеет пониженные характеристики управления выборкой. В противоположность этому, процессор 51, использующий шаблоны согласно данному варианту осуществления, имеющие соответствующие логические вентили, заранее исключает появление большой неиспользуемой площади как в БМК, и также повышает характеристики управления выборкой. Соответственно, блоком 57 обработки данных в этом варианте реализации на основе шаблонов 71 является реконфигурируемый процессор, выполненный с возможностью изменения аппаратных средств с помощью программы. В соответствии с настоящим изобретением обеспечивается возможность создания системы обработки данных, обладающей как высоким уровнем гибкости средств программного обеспечения, так и повышенным быстродействием аппаратных средств по сравнению с процессором, использующим БМК.
Соответствующие логические вентили в этих шаблонах 71 предусмотрены заранее, и поэтому логические вентили, нужные для выполнения конкретной прикладной программы, выполнены с надлежащей плотностью. Соответственно, блок обработки данных, использующий шаблоны 71, экономичен. Если процессор данных выполнен из БМК, то для снижения плотности упаковки необходимо учитывать частую загрузку программы для реконфигурации логических схем. Время, требуемое для этой загрузки, также снижает скорость обработки. В противоположность этому, поскольку процессор 51, использующий шаблоны 71, имеет высокую плотность упаковки, поэтому становится менее необходимым компенсирование снижения плотности, и в меньшей степени требуется частая реконфигурация аппаратных средств. При этом, управление реконфигурациями осуществляется в единицах тактов. При этом имеется возможность обеспечить компактную быстродействующую систему обработки данных, выполненную с возможностью реконфигурирования аппаратных средств с помощью средств программного обеспечения, в отличие от реконфигурируемого процессора на основе ВМК.
Помимо этого, БОПД 57, изображаемый на фиг. 11, включает в себя регистр конфигурации (СКЕС) 75, выполненный с возможностью коллективно определять и устанавливать соответствующие интерфейсы и содержание обработки (далее - «данные конфигурации») шаблонов 71 в секции 72 шаблонов; и ЗУПВ (КЗУПВ) 76 кон29 фигурации, запоминающую совокупность данных С1 конфигурации (далее ί представляет соответствующее целое число), предоставляемые для СНЕС 75. Команду, подобную ΌΕ8ΕΤ С1, обеспечивают в качестве команды указателей 25 потока данных. Когда У-декодер 62у декодирует эту команду, нужные данные конфигурации из числа данных С1 конфигурации, запомненных в КЗУПВ 76, загружают в СНЕС 76. В результате этого конфигурации множества шаблонов 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а - 826. и затем обрабатывают и выводят в кэш-памяти вывода 83а - 836. Этот шаблон 71 имеет маршрут 88 данных, выполненный с возможностью последующей обработки данных А, В, С и Ό, соответственно запомненных во входных кэшпамятях 82а - 826, и сохранения результата операции в выходной кэш-памяти 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, то возможно конфигурировать секцию 72 шаблонов в основном с помощью шаблонов, имеющих конфигурацию, соответствующую обработке этой прикладной программы. В результате с помощью обработки данных потокового типа возможна обработка большего числа видов обработки данных, посредством этого повышается производительность обработки. Если универсальная БИС имеет системную БИС 50, то возможно сконфигурировать секцию 72 шаблонов в основном с помощью шаблонов, соответствующих тем видам обработки, которые часто имеют место в универсальной прикладной программе, например, операции с плавающей запятой, умножение и деление, обработка изображений и т. п.
Таким образом, набор команд и система обработки данных согласно данному изобретению делает возможным обеспечение БИС, имеющей поток данных или псевдопоток данных и выполняющей разные виды обработки, и с помощью программных средств обеспечивается возможность изменения аппаратных средств для выполнения потока данных в любое время с получением конфигурации, соответствующей обработке конкретных данных. Упомянутая архитектура для осуществления обработки потока данных с помощью комбинации шаблонов, т. е. БОПД 52 или область 72 шаблонов, может быть предусмотрена в блоке управления или в системе обработки данных, такой как процессор, независимо от набора 10 команд, имеющего Хполе 11 и У-поле 12. Поэтому возможно обеспечить систему обработки данных, выполненную с возможностью ведения обработки на высокой скорости, изменения аппаратных средств за более короткое время, и также имеющую улучшенные характеристики управления выборкой по сравнению с БМК.
Также возможно сконфигурировать системную БИС, содержащую БОПД 57 или область шаблонов вместе с обычным универсальным встроенным процессором, т. е. с процессором, работающим с мнемокодами. В этом случае какую-либо обработку, которую нельзя осуществить с помощью шаблонов 71, можно выполнить с помощью универсального процессора. Как указано выше, обычный процессор имеет такие проблемы, как потери из-за ветвления и потеря тактов для подготовки регистров к арифметической обработке. Также желательно, чтобы в этом варианте реализации применялся процессор 51, выполненный с возможностью декодирования набора 10 команд, имеющего Уи У-поля для выполнения.
Помимо этого, с помощью процессора 51 и набора 10 команд согласно данному варианту осуществления конфигурации БОПД 57 создают или изменяют до выполнения обработки данных, параллельно с другой обработкой, выполняемой с помощью У-поля 12. Это целесообразно с точки зрения эффективности обработки и программы. Эффективность программ также повышают за счёт описания обычного командного мнемокода и кода выполнения потока данных в едином наборе команд. Согласно приводимым выше пояснениям функция У-поля 12 набора 10 команд согласно данному варианту осуществления не ограничивается описанием командного кода потока данных.
Процессор согласно настоящему изобретению выполнен с возможностью изменения физической конфигурации или структуры маршрута данных с помощью У-поля 12 до выполнения. В противоположность этому, в обычном процессоре множество микропроцессоров соединены друг с другом посредством совместно используемой памяти. Поэтому, даже если имеется процессор в состоянии простоя, то внутренний блок обработки данных этого процессора нельзя использовать извне. В процессоре данных согласно данному изобретению создание соответствующего потока данных обеспечивает возможность применения неиспользуемых ап33 паратных средств другим блоком управления или процессором данных.
В качестве дополнительных эффектов данного изобретения в блоке управления согласно данному изобретению и в процессоре, который использует этот блок, повышена эффективность последовательности выполнения команд, и также обеспечены независимость и степень свободы (доступности) внутреннего маршрута данных; обработку последовательно выполняют при доступности исполнительных аппаратных средств, даже если одновременно подают последовательности команд для обработки, имеющие контексты совершенно разных свойств.
В настоящее время преимущества совместного проектирования аппаратных средств и программных средств проявляются всё в большей степени, и комбинация набора команд и блока управления в соответствии с настоящим изобретением становится ответом на вопрос о том, как алгоритмы и/или обработка данных, запрашиваемая пользователем, выполнить эффективно и экономично в разумных пределах затрат на аппаратуру. Например, исходя из данных и/или информации, относящихся к набору команд согласно настоящему изобретению (ранее - ΌΑΡ/ΌΝΑ), отражающему конфигурации маршрутов данных, уже выполненных, и к аппаратуре и/или последовательности, впоследствии добавленных для осуществления обработки новый тип комбинации, который соответствует новому маршруту данных (потоку данных), описываемому программным обеспечением, становится наиболее оптимальным решением для обработки, и улучшает производительность, при этом сводя к минимуму затраты на аппаратные средства.
В обычных аппаратных средствах разделение конфигурации на элементы менее вероятно. Поэтому отсутствует гибкость в сочетании элементов, и в принципе основное решение улучшения производительности заключается во введении единого нового маршрута данных. Поэтому трудно оценить обычную архитектуру в числовом выражении как с точки зрения накопления некоторой информации для увеличения производительности, так и с точки зрения введения аппаратурной информации, фактически реализуемой для реализации требуемого улучшения производительности, тем самым затрудняя создание базы данных. В противоположность этому, согласно данному изобретению, поскольку уплотненные (компактные) маршруты данных обеспечивают как шаблоны, и комбинацию маршрутов данных назначают для проведения обработки потокового типа данных, поэтому взаимодействие между аппаратными средствами и средствами программного обеспечения нетрудно оценить очень точно для увеличения производительности. Также возможно накопление компромиссной информации между аппаратными средствами и программными средствами, и поэтому комбинацию маршрутов данных можно теснее увязать для увеличения производительности обработки данных. Это также делает возможным накопление оценочных данных по стоимости, производительности нужной обработки и характеристикам выполнения, непосредственно относящимся и к аппаратным средствам, и к программному обеспечению. При этом, поскольку маршруты данных выполняют без прерывания выполнения основной обработки или универсальной обработки, поэтому ожидаемый результат помимо требуемой производительности можно прогнозировать, исходя из накопленных прошлых данных аппаратных средств и наборов команд согласно настоящему изобретению.
Поэтому данное изобретение не только значительно сокращает текущие затраты на конструирование и спецификацию, но также обеспечивает новую конструкцию с минимальным компромиссом между новыми аппаратными средствами и программным обеспечением. При этом облегчается соответствие типу обработки, ведущее к обеспечению внутреннего маршрута данных для внешнего использования, и поэтому обеспечивается возможность совместного использования аппаратных ресурсов. Соответственно, параллельная обработка с помощью множества модулей согласно настоящему изобретению (ΌΑΡ/ΌΝΆ-модули) становится одним из наиболее рациональных аспектов для выполнения компактных аппаратных средств.
Необходимо отметить, что указанная система обработки данных и набор команд являются одним из вариантов осуществления настоящего изобретения, так что в процессоре данных можно использовать внешнее ЗУПВ или ПЗУ вместо ЗУПВ кодов или ЗУПВ данных или т.п., и можно дополнительно обеспечить интерфейс с внешним ДЗУПВ или СЗУПВ или т.п. Процессоры данных, дополнительно выполняющие известные функции в качестве процессора данных, такие как системная ВИС, напр., интерфейс ввода/вывода для соединения с другим внешним устройством, также входят в объем данного изобретения. Соответственно, настоящее изобретение определено в приводимой ниже формуле изобретения, и все модификации, охватываемые формулой, входят в объем настоящего изобретения.
В новой программной среде, обеспечиваемой набором команд и системой обработки данных согласно настоящему изобретению, возможно также обеспечение особых команд помимо описываемых выше. Возможные примеры включают в себя ΧΕΘΚΚ для приведения в действие - помимо текущей программы - одного, или более объектов (программ) одновременно и для обеспечения параллельной обработки на уровне команды; Χ8ΥΝΚ для синхронизации объектов (программ); ΧΡΙΡΕ для команды создания конвейерного соединения между параллельными обработками; и Х8А1ТСН для прекращения текущего объекта и для приведения в действие последующего объекта.
В соответствии с вышеизложенным технология, содержащая набор команд согласно данному изобретению, программирование с помощью наборов команд; и систему обработки данных, выполненную с возможностью выполнения наборов команд, основана на значительно усовершенствованном принципе структуры или конфигурации набора команд, и таким образом решаются упоминаемые выше проблемы, которые трудно решить с помощью известного уровня техники; и обеспечивается значительное улучшение производительности.
Согласно настоящему изобретению структура наборов команд рассматривается и создаётся с той точки зрения, которая совершенно отлична от обычного способа, поэтому набор команд в соответствии с настоящим изобретением очень эффективно решает многие проблемы, с большим трудом разрешимые с помощью известного уровня техники. Фактически в известном уровне техники структура набора команд и способ обеспечения (получения) команд с помощью аппаратных средств осуществляют на основе чрезвычайно стандартизированных, традиционных готовых концепций, тем самым препятствуя решению проблем по существу. Обычная методика решения всех проблем за счёт очень громоздкой усложнённой аппаратурной конфигурации вызвала значительный рост затрат на разработку технологии. Выросла также стоимость различных изделий обработки информации, разработанных на основе этой технологии. Согласно настоящему изобретению обеспечивают набор команд, который должен быть оригинальным и отдаёт приоритет требованиям прикладных задач. Поэтому данное изобретение означает, что оно не только способно повысить производительность продукта, но также, более вероятно, приобретёт высокую эффективность разработки и гарантированное качество продуктов.
Помимо этого, согласно данному изобретению маршруты данных (потоки данных), которые в состоянии увеличить производительность, можно аккумулировать с помощью ресурсов, т.е. шаблонов и наборов команд для применения шаблонов. Поэтому аккумулированные маршруты данных можно корректировать в любое время, исходя из дополнительно вводимой информации о конфигурации аппаратных средств и информации последовательности для выполнения обработки данных, чтобы удобным образом получить оптимальное решение. Соответственно, с помощью данного изобретения обеспечивается более рациональное совместное использование ресурсов прикладными программами, совместное использование в аппаратных средствах, и затраты на аппаратные средства для увеличения производительности становятся более эффективными по сравне нию с обычным уровнем техники; и данное изобретение явится значительным вкладом в техническую инфраструктуру для создания сетевого общества.
Промышленная применимость
Система обработки данных согласно данному изобретению обеспечивают как процессор, БИС или т. п., выполненные с возможностью выполнения различных видов обработки данных, и она применима не только для интегральных схем электронных устройств, но также и для оптических устройств и даже для оптических устройств с интегральными схемами, в которых интегрированы электронные и оптические устройства. В частности, программа управления, содержащая набор команд согласно данному изобретению, и процессор данных выполнены с возможностью гибкого выполнения высокоскоростной обработки данных, и предпочтительны для процессов, для которых необходимы высокая производительность и работа в реальном времени, например -сетевая обработка данных и обработка изображений.

Claims (39)

  1. ФОРМУЛА ИЗОБРЕТЕНИЯ
    1. Управляющий программный продукт, содержащий набор команд, включающий в себя первое поле для описания команды выполнения в целях обозначения содержания операции или обработки данных, выполняемой по меньшей мере в одном блоке обработки, формирующем систему обработки данных; и второе поле для описания подготовительной информации в целях установки блока обработки в состояние готовности выполнить операцию или обработку данных, выполняемую согласно команде выполнения; при этом подготовительная информация во втором поле предназначается для операции или обработки данных, являющихся независимыми от содержания команды выполнения, описываемой в первом поле набора команды.
  2. 2. Управляющий программный продукт по п.1, отличающийся тем, что подготовительную информацию для команды выполнения, описанной в первом поле последующего набора команд, описывают во втором поле.
  3. 3. Управляющий программный продукт по п.1, отличающийся тем, что подготовительная информация содержит информацию для обозначения интерфейса ввода и/или вывода блока обработки независимо от тактирования выполнения блока обработки.
  4. 4. Управляющий программный продукт по п.1, отличающийся тем, что подготовительная информация содержит информацию для назначения содержимого обработки блока обработки.
  5. 5. Управляющий программный продукт по п.1, отличающийся тем, что система обработки данных содержит множество блоков обработки и подготовительная информация включает в себя информацию для назначения комбинации маршрутов данных блоками обработки.
  6. 6. Управляющий программный продукт по п.1, отличающийся тем, что блок обработки включает в себя специализированный внутренний маршрут данных и подготовительная информация включает в себя информацию для выбора некоторой части внутреннего маршрута данных.
  7. 7. Управляющий программный продукт по п.1, отличающийся тем, что подготовительная информация содержит информацию для назначения интерфейсов ввода/вывода в средстве обработки, сформированном из множества блоков обработки.
  8. 8. Управляющий программный продукт по п.7, отличающийся тем, что система обработки данных включает в себя запоминающее устройство, сохраняющее совокупность данных конфигурации, определяющих интерфейсы ввода и/или вывода в средстве обработки, и подготовительная информация включает в себя информацию для выбора данных из множества данных конфигурации, сохраненных в запоминающем устройстве, для изменения интерфейсов ввода и/или вывода в средстве обработки.
  9. 9. Управляющий программный продукт по п.1, отличающийся тем, что система обработки данных имеет первый блок управления, содержащий арифметико-логическое устройство, и второй блок управления, содержащий в качестве блоков управления множество блоков обработки потока данных, включающих в себя специализированный внутренний маршрут данных, и управляющий программный продукт включает в себя набор команд, в котором команду выполнения для работы арифметико-логического устройства описывают в первом поле; и подготовительную информацию, обозначающую интерфейсы арифметико-логического устройства и/или блоков обработки потока данных, описывают во втором поле.
  10. 10. Управляющий программный продукт по п.9, отличающийся тем, что подготовительная информация включает в себя информацию для обозначения комбинации маршрутов данных блоками обработки потока данных.
  11. 11. Управляющий программный продукт по п.9, отличающийся тем, что подготовительная информация включает в себя информацию для выбора некоторой части внутреннего маршрута данных.
  12. 12. Управляющий программный продукт по п.1, отличающийся тем, что команду, обозначающую ввод/вывод между регистром или буфером и запоминающим устройством, описывают во втором поле.
  13. 13. Управляющий программный продукт по п.1, отличающийся тем, что совокупность команд выполнения и/или подготовительную информацию описывают в первом и/или втором полях, соответственно.
  14. 14. Носитель записи для записи на нём программы управления, содержащей набор команд, включающий в себя первое поле для описания команды выполнения в целях описания содержания операции или обработки данных, которую выполняют по меньшей мере в одном блоке обработки, формирующем систему обработки данных, и второе поле для описания подготовительной информации в целях установки блока управления в состояние готовности выполнить операцию или обработку данных, выполняемую согласно команде выполнения, при этом подготовительная информация во втором поле предназначается для операции или обработки данных, являющихся независимыми от содержания команды выполнения, описываемой в первом поле набора команд.
  15. 15. Передающая среда, имеющая встроенную программу управления, содержащую набор команд, включающий в себя первое поле для описания команды выполнения в целях обозначения содержания операции или обработки данных, выполняемой по меньшей мере в одном блоке обработки, формирующем систему обработки данных, и второе поле для описания подготовительной информации в целях установки блока управления в состояние готовности выполнить операцию или обработку данных, выполняемую согласно команде выполнения, при этом подготовительная информация во втором поле предназначается для операции или обработки данных, являющихся независимыми от содержания команды выполнения, описываемой в первом поле набора команд.
  16. 16. Система обработки данных, содержащая по меньшей мере один блок обработки для выполнения операции или обработки данных, блок для выборки набора команд, включающего в себя первое поле для описания команды выполнения в целях обозначения содержания операции или обработки данных, которую выполняют в блоке обработки, и второе поле для описания подготовительной информации для установки блока обработки в состояние готовности выполнить операцию или обработку данных, которую выполняют согласно команде выполнения, первый блок управления выполнением для декодирования команды выполнения в первом поле упомянутого набора команд и выполнения операции или обработки данных с помощью блока обработки, заранее установленного в состояние готовности выполнить операцию или обработать данные команды выполнения, и второй блок управления выполнением для декодирования подготовительной информации во втором поле упомянутого набора команд и, независимо от содержания выполнения первого блока управления выполнением, для установки блока управления в состояние готовности выполнить операцию или обработку данных.
  17. 17. Система обработки данных по п.16, отличающаяся тем, что первый и второй блоки управления выполнением включают в себя множество узлов управления выполнением для независимой обработки множества независимых команд выполнения или подготовительной информации, которые описывают в первом и втором полях соответственно.
  18. 18. Система обработки данных по п.16, отличающаяся тем, что второй блок управления выполнением создаёт интерфейс ввода и/или вывода блока управления независимо от тактирования выполнения блоком обработки.
  19. 19. Система обработки данных по п.16, отличающаяся тем, что второй блок управления выполнением определяет содержание обработки блока обработки.
  20. 20. Система обработки данных по п.16, содержащая множество блоков обработки, причём второй блок управления выполнением управляет комбинацией маршрутов данных, образованной блоками обработки.
  21. 21. Система обработки данных по п.16, отличающаяся тем, что блок обработки включает в себя специализированный внутренний маршрут данных.
  22. 22. Система обработки данных по п.16, отличающаяся тем, что блок обработки содержит по меньшей мере один логический вентиль и внутренний маршрут данных, соединяющий логический вентиль с интерфейсом ввода/вывода.
  23. 23. Система обработки данных по п.21, отличающаяся тем, что второй блок управления выполнением выбирает некоторую часть внутреннего маршрута данных блока обработки согласно подготовительной информации.
  24. 24. Система обработки данных по п.16, отличающаяся тем, что второй блок управления выполнением изменяет интерфейсы ввода/вывода в средстве обработки, сформированном из множества блоков обработки согласно подготовительной информации.
  25. 25. Система обработки данных по п.24, содержащая запоминающее устройство, запоминающее множество данных конфигурации, определяющих интерфейсы ввода и/или вывода в средстве обработки, причём второй блок управления выполнением изменяет интерфейсы ввода и/или вывода в средстве управления путём выбора данных из множества данных конфигурации, сохраненных в запоминающем устройстве, согласно подготовительной информации.
  26. 26. Система обработки данных по п.16, отличающаяся тем, что второй блок управления выполнением выполняет функцию планировщика для управления интерфейсом блока обработки.
  27. 27. Система обработки данных по п. 16, отличающаяся тем, что дополнительно содержит первый блок управления, включающий в себя арифметико-логическое устройство в качестве блока обработки, и второй блок управления, имеющий в качестве блоков обработки множество блоков обработки потока данных, включающих в себя конкретный продукт данных, причём первый блок управления выполнением управляет арифметико-логическим устройством и второй блок управления выполнением создаёт интерфейсы арифметико-логического блока и/или блоков обработки потока данных.
  28. 28. Система обработки данных по п.27, отличающаяся тем, что второй блок управления выполнением управляет комбинацией маршрутов данных, созданной блоками обработки потока данных.
  29. 29. Система обработки данных по п.27, отличающаяся тем, что блок обработки потока данных имеет конкретный внутренний маршрут данных, и второй блок управления выполнением выбирает некоторую часть внутреннего маршрута данных блока обработки потока данных в соответствии с подготовительной информацией.
  30. 30. Система обработки данных по п.16, отличающаяся тем, что второй блок управления выполнением осуществляет функцию управления вводом/выводом между регистром или буфером и запоминающим устройством.
  31. 31. Способ управления системой обработки данных, включающий в себя по меньшей мере один блок обработки для выполнения операции или обработки данных, содержащий следующие этапы:
    осуществляют выборку набора команд, включающего в себя первое поле для описания команды выполнения в целях обозначения содержания операции или обработки данных, которую выполняют в блоке обработки, и второе поле для описания подготовительной информации в целях установки блока обработки в состояние готовности выполнить операцию или обработку данных, которую выполняют согласно команде выполнения, осуществляют первый этап управления декодирование команды выполнения в первом поле и осуществление операции или обработки данных с помощью блока управления, который заранее приводят в состояние готовности для выполнения операции или обработки данных команды выполнения, и осуществляют второй этап управления декодирование, независимо от первой операции управления, подготовительной информации во втором поле и приведение блока обработки в состояние готовности выполнить операцию или обработку данных.
  32. 32. Способ по п.31, отличающийся тем, что на втором этапе управления интерфейс ввода и/или вывода блока обработки создают независимо от тактирования выполнения, блока обработки.
  33. 33. Способ по п.31, отличающийся тем, что на втором этапе управления определяют содержание обработки блока обработки.
  34. 34. Способ по п.31, отличающийся тем, что система обработки данных включает в себя совокупность блоков обработки и на втором этапе управления управляют комбинацией маршрутов данных, созданной блоками обработки.
  35. 35. Способ по п.31, отличающийся тем, что блок управления имеет конкретный внутренний маршрут данных и на втором этапе управления выбирают некоторую часть внутреннего маршрута данных блока обработки.
  36. 36. Способ по п.31, отличающийся тем, что на втором этапе управления изменяют интерфейсы ввода и/или вывода в средстве обработки, сформированном из множества блоков обработки.
  37. 37. Способ по п.31, отличающийся тем, что система обработки данных включает в себя запоминающее устройство, сохраняющее множество данных конфигурации, определяющих интерфейсы ввода и/или вывода в средстве обра-
    Фиг. 1
    Фиг .2 ботки, и на втором этапе выполнения интерфейсы ввода и/или вывода в средстве обработки изменяют путём выбора данных из множества данных конфигурации, сохраненных в запоминающем устройстве.
  38. 38. Способ по п.31, отличающийся тем, что на втором этапе управления ведут, осуществляют планирование, обеспечивающее интерфейс блока обработки.
  39. 39. Способ по п.31, отличающийся тем, что на втором этапе управления управляют вводом/выводом между регистром или буфером и запоминающим устройством.
EA200200310A 1999-08-30 2000-08-30 Управляющий программный продукт и система обработки данных EA004196B1 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP24413799 1999-08-30
PCT/JP2000/005848 WO2001016710A1 (fr) 1999-08-30 2000-08-30 Processeur de donnees

Publications (2)

Publication Number Publication Date
EA200200310A1 EA200200310A1 (ru) 2002-10-31
EA004196B1 true EA004196B1 (ru) 2004-02-26

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 After (1)

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

Country Status (16)

Country Link
US (4) US6826674B1 (ru)
EP (2) EP1215569B1 (ru)
JP (2) JP4234925B2 (ru)
KR (2) KR100491593B1 (ru)
CN (3) CN1148647C (ru)
AT (1) ATE466330T1 (ru)
AU (3) AU6864400A (ru)
BR (2) BR0013594A (ru)
CA (2) CA2348261C (ru)
DE (1) DE60044300D1 (ru)
EA (2) EA004196B1 (ru)
HK (1) HK1047326A1 (ru)
IL (4) IL142675A0 (ru)
NZ (2) NZ516680A (ru)
TW (2) TW504608B (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
JP4234925B2 (ja) * 1999-08-30 2009-03-04 アイピーフレックス株式会社 データ処理装置、制御方法およびその記録媒体
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 富士通株式会社 情報処理装置
US20070186076A1 (en) * 2003-06-18 2007-08-09 Jones Anthony M Data pipeline transport system
EP1636725B1 (en) 2003-06-18 2018-05-16 Imagination Technologies Limited Circuit register and method therefor
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 富士通マイクロエレクトロニクス株式会社 半導体装置
EP1806847B1 (en) 2004-10-28 2010-02-17 IP Flex Inc. Data processing device having reconfigurable logic circuit
CN100346292C (zh) * 2005-12-02 2007-10-31 浙江大学 多地址空间异步计算等待响应指令的控制方法
JP4795025B2 (ja) * 2006-01-13 2011-10-19 キヤノン株式会社 ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム
US7904615B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
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
JP4410297B2 (ja) * 2006-03-09 2010-02-03 富士通株式会社 リコンフィギャラブル回路
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
JP5126226B2 (ja) * 2007-05-17 2013-01-23 富士通株式会社 演算ユニット、プロセッサ及びプロセッサアーキテクチャ
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
US8532975B2 (en) * 2009-06-12 2013-09-10 Cadence Design Systems, Inc. System and method implementing a simulation acceleration capture buffer
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 富士通セミコンダクター株式会社 データ処理システム
WO2011121709A1 (ja) * 2010-03-29 2011-10-06 株式会社東芝 半導体装置
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
US5742180A (en) 1995-02-10 1998-04-21 Massachusetts Institute Of Technology Dynamically programmable gate array with multiple contexts
US6052773A (en) 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
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プロセッサ
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
US5970254A (en) * 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing
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
JP4234925B2 (ja) * 1999-08-30 2009-03-04 アイピーフレックス株式会社 データ処理装置、制御方法およびその記録媒体

Also Published As

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

Similar Documents

Publication Publication Date Title
EA004196B1 (ru) Управляющий программный продукт и система обработки данных
CN108268278B (zh) 具有可配置空间加速器的处理器、方法和系统
US4435758A (en) Method for conditional branch execution in SIMD vector processors
Rau et al. Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing
US5710902A (en) Instruction dependency chain indentifier
US5357617A (en) Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor
JP3797471B2 (ja) マルチスレッドvliwプロセッサにおける分割可能なパケットを識別するための方法および装置
Kuehn et al. The Horizon supercomputing system: architecture and software
CN111512292A (zh) 用于可配置空间加速器中的非结构化数据流的装置、方法和系统
US4562538A (en) Microprocessor having decision pointer to process restore position
JPS59173850A (ja) パイプライン式プロセツサ
US6061367A (en) Processor with pipelining structure and method for high-speed calculation with pipelining processors
JP2001249807A (ja) データ処理装置
WO2022036690A1 (zh) 一种图计算装置、处理方法及相关设备
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
Cichon et al. Compiler scheduling for STA-processors
JP4560705B2 (ja) データ処理装置の制御方法
US20020129229A1 (en) Microinstruction sequencer stack
CN118193054A (zh) 自定义指令处理方法、装置、计算机设备和存储介质
JPH07191845A (ja) 即値データ転送装置
EP2386944A1 (en) Method and computer software for combined in-order and out-of-order execution of tasks on multi-core computers
US20160147536A1 (en) Transitioning the Processor Core from Thread to Lane Mode and Enabling Data Transfer Between the Two Modes
JPH02105936A (ja) データ処理装置
JPH06175989A (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